3

我有一个使用 Mercurial 管理并使用 Jenkins 构建的 Java 项目。有没有办法阻止开发人员签入破坏构建的代码?我知道我可以用 Ant 和 Mercurial 钩子做到这一点,但是有没有办法用 Jenkins 做到这一点?

4

3 回答 3

9

这是我放在一起的图表来说明其他帖子中的想法:

两阶段源提交

于 2011-09-11T21:46:53.523 回答
8

让您的开发人员从一个 repo 中提取(我们将其命名为“master”)并推送到另一个 repo(我们将其命名为“staging”)。(很容易在中的一个简单的default-push位置.hgrc

如果构建成功,Jenkins 从 staging 中提取并推送到 master,否则恢复 Jenkins 的存储库副本。

只有詹金斯应该能够推送给主人。

于 2011-09-11T21:26:34.330 回答
3

这里没有使用 Jenkins 的经验,但是利用 Mercurial 优势的 KISS 解决方案可能是这样的:

  • 克隆主存储库
  • 将更改从开发人员的机器中提取到克隆中
  • 在克隆上运行构建
  • 如果构建成功,则从克隆推送到主控,否则删除克隆并通知开发人员
于 2011-09-11T15:16:12.950 回答