2

我使用 Capistrano 来部署我的 rails 应用程序。如何写出部署到 public_html/revision.txt 的 git 修订版?

4

4 回答 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 回答