2009-08-03 74 views
5

有没有一种方法可以在每次通过capistrano完成部署时保留日志(本地或存储在远程服务器上)?记录过去在任何特定时间进行的修订是非常有用的。保持capistrano部署的日志

我知道部署过程留下了发布目录中最后10个部署的已部署文件,但保留更多历史记录并使其以平面文件的形式可访问将会很好。

回答

8

capistrano设置了一些有用的变量,其中一个名为latest_revision,您可以将其转储到文件中。

task :mark_revision do 
    log = "#{deploy_to}/revisions.log" 
    run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " + 
    "echo #{latest_revision} >> #{log};" 
end 
+0

看来Capistrano的3对您在部署创建revisons.log – lfender6445 2015-04-05 00:38:40

3

有没有内置的功能,所以其他答案将完美工作;我可能会说,你应该把它安装到默认执行链条不知怎么的,我会建议像

after :deploy, :mark_revision 
的更好恕我直言

东西会是这样的:

after :deploy do 
    log = "#{deploy_to}/revisions.log" 
    run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " + 
    "echo #{latest_revision} >> #{log};" 
end 

我已经打开它作为一个就Capistrano的错误跟踪器进行讨论的机票,也许我们会在核心中实施一些内容以保持更好的日志;这当然是我们严重忽视的一个很好的问题!通过保持数据库驱动的Web前端,Peritor Labs的“Webistrano”可以做类似的事情,这使您可以记录任何您喜欢的内容,并将用于部署的依赖关系从开发人员计算机移到更重要的位置;通常人们在他们的CI服务器上使用Webistrano,或者如果他们是自托管的,则存储库主机。他们Trac的更多信息:http://labs.peritor.com/webistrano

的错误所在位置:https://capistrano.lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments