题
有没有一种方法来记录(无论是本地或存储在远程服务器上)的每一个部署通过Capistrano的完成时间?这将是非常有益的,保持什么修订是在以往任何给定时间运行的记录。
我知道部署过程中留下了在版本目录中的最后10个部署部署的隐藏文件,但它会很高兴让更多的历史,有它在平面文件的形式进行访问。
解决方案
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
其他提示
有没有内置的功能,所以对方的回答会很好地工作;我可能会说,你应该把它安装到默认执行链条不知怎么的,我会建议像
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酒店的bug跟踪讨论的门票,也许我们将在核心,以保持较好的日志实现的东西;它肯定是一个很大的问题,我们已经严厉忽视!
Peritor Labs的‘Webistrano’有类似的功能,通过保持一个数据库驱动的网络前端,这允许您登录任何你喜欢的,和移动部署的依赖关开发商机的地方更为重要;通常人们使用Webistrano自己的CI服务器或存储库主机上,如果他们是自托管。在他们的Trac更多信息: http://labs.peritor.com/webistrano
在错误所在位置:的https:// Capistrano的。 lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments
不隶属于 StackOverflow