有没有一种方法来记录(无论是本地或存储在远程服务器上)的每一个部署通过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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top