我们的开发部门不断壮大,我想强制建立一个稳定的主/主干。
到目前为止,每个开发人员都可以提交到master / trunk。在未来,开发人员应该进入临时区域,如果所有测试都通过,代码将自动移动到主干。如果测试失败,开发人员会收到包含失败测试的邮件。
我们有几个存储库:一个用于核心产品,一个插件和每个客户的存储库。
到目前为止,我们运行SVN和git,但如果需要,可以将所有存储库转换为git。
哪种软件可以帮助我们完成这项工作?
网上有一些文章解释了如何使用gerrit和jenkins来强制稳定的分支。
我不确定我是否需要两者,或者是否更好地使用其他东西。
环境:我们是10个开发人员,使用python和django。
问题:哪个工具可以帮助我强制稳定的主分支?
更新
我正在度假,现在赏金已经过期了。对不起。谢谢您的回答。
答案 0 :(得分:2)
问题:哪个工具可以帮助我强制稳定的主分支?
自从我们~20人基于PHP / ZF1的开发团队在冬天从SVN切换到Git(我成为事实上的git mess-fixer)之后,一直在研究CI这一特定方面的准病理学,我不禁分享了我对持续整合这一特定方面的经验。
显然,将“临界质量的单位测试运行”与一系列有条件参数化的Jenkins工作相结合,触发无限更多条件参数化工作,涵盖所有可想象的环境(或许)将是最好和最合适的方式朝着持续集成/交付/部署模型迈进,这种迁移所需的meatspace资源并非无关紧要。
有些问题:
您的团队是否有某种VCS工作流程,或者最低限度地定义了规则?
您粗略地说您的代码库在某种行为(例如硒),功能或单元测试中的百分比是多少?
您的团队(/资深开发者)是否真的有时间/兴趣充分利用gerrit基于同行的代码审核功能?
平均而言,您在任何指定日/周/月内部署到生产的次数是多少次?
如果这些问题不止一个的回答是“不”,“没有”或“很少/很少”,那么我可能会考虑投入一些白板时间来考虑你的团队的一般工作流程詹金斯融入其中。
另外,git-hooks。 Seriously
但是,如果你非常热衷于拥有一个CI / Jenkins服务器,或者你已经掌握了所有这些基础知识,那么我会指出这个真正非凡的博客文章:
同样精明的堂兄:
哦,当然,非常必要的devopsreactions tumblr。
答案 1 :(得分:1)
网上有一些文章解释了如何使用gerrit和jenkins来强制稳定的分支。
我不确定我是否需要两者,或者是否更好地使用其他东西。
在每种情况下,想法是做一些 guarded commit ,即推送到中间回购(gerrit,或Jenkins监控的回购),并且只推送到最终回购中间过程(审查或自动构建/测试)成功通过。
通过添加中间回购,您可以轻松地在最终的“祝福”回购中强制使用一个唯一的分支,如果认为这些提交被认为是值得的,那么这些中间参考将推送到该回购。
答案 2 :(得分:1)
听起来您正在寻求建立标准CI功能。您将需要以下基本工具:
根据您的开发过程,还有许多其他可能有用的工具:
根据我的经验,建立正确的文化与寻找合适的工具同样重要。