我使用Capistrano来部署我的rails应用程序。如何写出部署到public_html / revision.txt的git修订版?
答案 0 :(得分:4)
如果其他人必须这样做:
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"
答案 1 :(得分: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。
答案 2 :(得分:1)
这可能是自问题原始问题以来添加的新功能,但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"
答案 3 :(得分:0)
您可以使用log命令获取最新的提交ID,然后将其重定向到您的文件:
git --no-pager log -1 --pretty=format:%H > public_html/revision.txt