Capistrano - 查找当前部署的版本

时间:2015-12-08 12:41:35

标签: capistrano capistrano3

使用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

2 个答案:

答案 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'