楼上的人要求我设置 Jenkins 进行预测试提交(通过 Jenkins 的构建,如果所有单元测试和其他测试都通过,则提交并构建 dist)。我们在这里使用 svn。
有人清楚如何使用 Jenkins 实现这一点吗?我几乎找不到任何相关信息。
答案1
很抱歉这么说,但这不是您使用修订控制软件的方式。无论您在客户端上做什么,您都可以在服务器上获得完整的历史记录。您可以恢复任何更改,包括删除所有内容。仅将经过充分测试、经过实践检验的代码提交给修订控制,首先就绝对不会给您带来使用修订控制的好处。
您可以这样做:将一个分支标记为稳定(这应该是/trunk
或/braches/current-stable
,我建议后者),让开发人员在其他地方提交。设置 Jenkins 进行测试,/trunk
并且只有当它们通过构建测试时才合并从trunk
到 的提交。current-stable
答案2
我认为“楼上的人”的目标是始终处于可发布状态的主分支/主干,因此需要进行预测试。对于像 Subversion 这样的集中式修订控制系统来说,这本身就很困难,而且很可能涉及某种自动分支调整和合并。
我个人使用 git 与 Gerrit 结合使用(http://code.google.com/p/gerrit/),一款与 Jenkins 结合使用的代码审查工具。开发人员从主分支拉取代码,但将其推送到 Gerrit 托管的“暂存 git 存储库”。Gerrit 则通过触发更改的 jenkins 构建作业做出反应。如果所有测试都通过,Gerrit 会接受更改并将其合并到主分支中。