我们的开发部门在成长,我想强制一个稳定的 master/trunk。
到目前为止,每个开发人员都可以提交到 master/trunk。将来开发人员应该提交到暂存区,如果所有测试都通过,代码将自动移动到主干。如果测试失败,开发人员会收到一封包含失败测试的邮件。
我们有几个存储库:一个用于核心产品,几个插件和一个存储库供每个客户使用。
到目前为止,我们运行 SVN 和 git,但如果需要,可以将所有 repos 切换到 git。
哪些软件可以帮助我们完成这项工作?
网上有一些文章解释了如何使用 gerrit 和 jenkins 来强制一个稳定的分支。
我不确定我是否需要两者,或者使用其他东西是否更好。
环境:我们有 10 个开发人员,使用 python 和 django。
问题:哪个工具可以帮我强制生成一个稳定的master分支?
更新
我正在休假,现在赏金已过期。对不起。谢谢您的回答。
最佳答案
Question: Which tool can help me to force a stable master branch?
自从我们大约 20 人的基于 PHP/ZF1 的开发团队在冬天从 SVN 切换到 Git 以来,我一直在准病态地研究 CI 的这个特定方面(我成为了事实上的 git mess-fixer),我忍不住分享我在持续集成这一特定方面的经验。
虽然显然,将“运行的单元测试的临界质量”与一系列条件参数化的 Jenkins 作业相结合,触发无限多的条件参数化作业,涵盖所有可以想象的情况(也许)是最好和最合适的方法转向持续集成/交付/部署模型,这种迁移所需的资源空间并不是微不足道的。
一些问题:
您的团队是否有某种 VCS 工作流或至少定义了规则?
您认为大致有多少百分比的代码库处于某种行为(例如 selenium)、功能或单元测试之下?
您的团队(/高级开发人员)是否真的有时间/兴趣充分利用 gerrit 的基于同行的代码审查功能?
平均而言,您在任何给定的一天/一周/一个月将多少次部署到生产环境?
如果这些问题中有一个以上的答案是“否”、“无”或“很少/很少”,那么我可能会考虑花一些时间在白板上思考一下您团队的一般工作流程,然后再发布 Jenkins 参与其中。
另外,git-hooks。 Seriously .
但是,如果您非常热衷于拥有 CI/Jenkins 服务器,或者您已经掌握了所有这些基础知识,那么我会向您推荐这篇博文中真正非凡的精华:
而且是同样精明的表弟:
哦,当然还有非常必要的 devopsreactions tumblr。
关于version-control - 强制稳定主干/主分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17524869/