我使用 Capistrano 来部署我的 rails 应用程序。如何写出部署到 public_html/revision.txt 的 git 修订版?
问问题
1623 次
4 回答
5
如果其他人必须这样做:
namespace :deploy do
# ...
desc "Write the current version to public_html/revision.txt"
task :write_revision, :except => { :no_release => true } do
run "cd #{latest_release}; git rev-parse HEAD > #{latest_release}/public/revision.txt"
end
# ...
end
after "deploy:update_code", "deploy:write_revision"
于 2012-09-07T20:38:50.513 回答
2
我将此添加到我的 deploy.rb 中:
execute "git rev-parse --abbrev-ref HEAD > public/revision.txt"
execute `"git log --oneline -1 >> public/revision.txt"`
然后在我的内部管理页面中,我有:
File.read("#{Rails.root}/public/revision.txt")
如果需要,您可以放入 Rails.root 而不是 public。
于 2016-07-01T22:47:45.003 回答
2
这可能是自提出原始问题以来添加的一项新功能,但 Capistrano 已经REVISION
在应用程序根目录中创建了一个文件。你可以把这个复制过来。这是我所拥有的:
desc "Write the current version to public/revision.txt"
task :write_revision do
on roles(:app, :api) do
execute :cp, "#{fetch(:release_path)}/REVISION #{fetch(:release_path)}/public/revision.txt"
end
end
after "deploy:finished", "deploy:write_revision"
于 2017-09-20T14:19:44.273 回答
1
您可以使用 log 命令获取最新的提交 ID,然后将其重定向到您的文件:
git --no-pager log -1 --pretty=format:%H > public_html/revision.txt
于 2012-09-07T20:02:13.000 回答