【问题标题】:Capistrano release not publishingCapistrano 版本未发布
【发布时间】:2013-12-19 02:14:48
【问题描述】:

我正在尝试使用 Capistrano 将我的 Rails 应用程序部署到我的远程测试环境。我使用 Git 作为我的部署源。

当我运行cap development deploy 时,一切似乎都正常。在我的本地日志中,我什至看到据说部署了新版本。

INFO [887154fa] Running /usr/bin/env echo "Branch dev 部署为 Clay 发布的 20131219020401;"

当我登录到远程服务器以验证发布的部署时,我希望看到我的 Web 应用程序得到更新。相反,我的最新提交尚未部署。更奇怪的是,如果我导航到远程 myapp/releases 文件夹,我可以看到我的版本。

为什么不发布此版本?

deploy.rb

require "capistrano/rvm"

set :rvm_ruby_string, :local           
set :rvm_autolibs_flag, "read-only" 
set :stages, %w(development, test, production)
set :default_stage, "development"
set :application, 'myapp'
set :repo_url, 'git@github.com:cometman/myapp.git'
set :deploy_to, '/var/www/myapp'
set :scm, :git
set :branch, "dev"
set :deploy_via, :copy
set :keep_releases, 5

【问题讨论】:

  • 这些提交是否在dev 分支中?
  • 是的,我正在推送到 dev 分支。
  • 那么您最近的更改是在releases 还是current?也许您部署得很好,但在服务器上运行错误的版本?你用的是什么服务器?
  • 最新版本正在发布中。当您说错误的版本时,您的意思是错误的分支吗?我最初的目标是推动“开发”并让我的 CI 环境运行它的所有单元测试。成功后,这些更改将被推送到测试,并且 CI 测试将再次运行。最后,测试分支将发布到我的测试服务器。由于这不起作用,我切断了对测试部分的推送,并尝试在我的服务器上推送到开发、运行 CI 套件并部署到开发。
  • 不,它应该指向current,如果是这样并且该目录中的代码包含您的提交(并且 Passanger 在部署后重新启动)那么我不知道是什么导致了这个问题.

标签: ruby-on-rails git capistrano continuous-deployment


【解决方案1】:

capistrano 部署的最后一步是symlink/app/releases/[TIMESTAMP] 获取工作版本目录=> /app/current。如果此符号链接尚未更新,但您在发布目录中看到了一个发布,则说明在此过程中出现了问题。

如果您粘贴整个部署日志,我可以帮助您找出失败的原因。您需要解决此失败的根本原因才能看到成功、完整的部署。

【讨论】:

  • 我会尽快验证并回复您!
  • 我最终擦掉了 capistrano 并重新安装了它。这解决了问题。你的回答让我知道我的环境中可能有一些问题。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
相关资源
最近更新 更多