使用Capistrano 3.4,是否有命令查找当前部署的版本(分支和标签/修订版)?
在已部署的根目录中,有一个文件revisions.log
。我可以创建一个自定义命令来解析它,但特别是在回滚的情况下,解析起来不是很容易:
Branch master (at 21) deployed as release 20151207160059 by Marco
Branch master (at 22) deployed as release 20151207180000 by Marco
Marco rolled back to release 20151207160059
答案 0 :(得分:2)
在release文件夹中有一个名为REVISION
的文件,其中包含已部署的VCS修订标识符。您只需cat
即可获得修订版。
答案 1 :(得分:0)
按照您的初衷,通过https://stackoverflow.com/a/34156436/2832282获取当前修订,并使用version.log文件查找匹配的分支名称
revision_string = Rails.root.join('..', '..', 'revisions.log').readlines.detect { |rev| rev.includes?(revision_from_revision_file) }
“ Cyril部署为版本20190301085412的分支生产(在6d68c9415e4d89a6c3119d68a164e50274a2e790)”
然后
revision = revision_string.match(
/^Branch (?<branch>.+) \(at (?<hash>\w+)\) deployed as release (?<release>\w+)/
)
revision['branch'] # => 'production'