4

就像每个提交都有一个原因和目的一样,我认为每个部署都有一个目的和原因。源代码提交有注释。但是部署没有。

如何自动记录每次部署的原因和目的?

我需要记录:

  • 谁部署到哪里,什么时间。
  • 为什么部署?Bug修复?功能更新?紧急修复不在迭代计划上?
  • 使用了哪个 git 或 svn ref?

有没有人觉得需要这种系统?你觉得我的方法怎么样?我怎样才能实现我的目标?我目前正在使用 Capistrano 进行部署。


增加了赏金。我想听听更多来自不同开发人员的“持续部署”故事。


我发现了两个部署跟踪的服务:

4

5 回答 5

3

Webistrano - https://github.com/peritor/webistrano/wiki - 是 capistrano 的 Web 界面,它还可以跟踪谁在什么时间部署了什么,因此值得研究。

于 2010-05-21T16:11:05.153 回答
1

我当前的项目使用apinsein 的 git-deployment recipe的修改版本,它(当您告诉 cap 进行部署时)将使用 Git 标签标记当前 HEAD(它为您提供正常 Git 提交的所有好处)。

于 2010-05-25T04:25:15.313 回答
1

我已经为这个确切的问题构建了一个 Web 服务http://deploytracking.com,它连接到 capistrano 并记录部署中涉及的时间、用户、分支、参考、环境和存储库。

于 2011-05-19T17:55:31.233 回答
0

I don't know if it is still relevant but I would like to come up with a different solution. I am building a new deployment tool that does just what you are looking for. I do not intend to spam my stuff here but since I am building something that could help you...

Anyway, have a look here https://alessiosantocs.github.io/Captain. I'm gathering feedback so if you have any please let me know.

Update

As suggested, I'm giving an explanation :)

I have also felt this need. I work in a digital startup and we're constantly deploying stuff 5 days a week on different Ruby on Rails application with Capistrano.

What we noticed was that for every single deployment, we should have done several things:

  • Keep track of which pull requests and commits went online that exact moment
  • Give some sort of a name to the deploy so we could recognize it
  • Alert our team members so that everyone could have been on the same page (without asking us of deployment's news)
  • Keep track of every deployments for future bugs and errors we might find at some point in time (which happened often)

So for this reason we started developing this custom solution that would integrate with Capistrano and our SCM (bitbucket) and keep track of every change we made to our master branch. This is what it does right now.

We are currently tracking deployment environment, repo source, deployment branch and revision. Mainly we manage pull requests, because we found that pull requests, better than commits, did solve an organizational issue in our team (it was difficult to approve other team member's code without a rigid system like PRs)

I would like to explain more about Captain and about our personal dev management strategy with you guys if you want.

Thanks @thirumalaimurugan for asking for clarification!

Update 2

We tried git tagging too. It was good and fun at the beginning but we couldn't manage them very well.

A tag is basically a bookmark to a specific revision. So we're talking about commits. A tag keeps no track of pull requests. It was quite a mess for us.

I don't think they're bad at what you're trying to achieve, but I think there must be some other solutions that could fit exactly your (and our too) problem.

于 2014-07-03T10:23:38.220 回答
0

Strano - Github 支持的 Capistrano 部署管理 UI。

关于持续部署,我也在那里提交了拉取请求,它为 GitHub 项目引入了自动部署,现在它只是在有人推送到主分支时触发部署任务。

于 2013-01-11T02:52:21.240 回答