如何配置Jenkins以从Mercurial中的不同分支构建项目

Ali*_*ard 12 mercurial hudson hudson-api jenkins

我有一个Jenkins构建作业,在默认分支上有一个Mercurial触发器,适用于构建"候选版本".然后,这项工作开始烟雾测试工作.

我们使用按功能分支的分支方案,因此在任何给定时间Mercurial中可能有多达12个不同的活动分支(但活动分支会定期更改).

我希望通过更改任何分支触发Jenkins作业,然后为所有需要更新的分支构建和运行冒烟测试.每次我们进行构建时,我们都应该创建与分支匹配的工件.

我在另一个回答中看到了一个建议:在Mercurial触发器中使用"tip"而不是分支名称 - 这是一种可能性,但我认为它将属于"大多数工作"类别.触发器是轮询,因此如果在轮询间隔内发生多个分支的更改,则可能会错过分支更新.

每次创建分支时我都可以创建一个新工作,但由于我们的分支机构的动态特性,这将是许多正在进行的工作.

gva*_*kov 5

如果您决定对每个分支方法进行工作,以下工具可以使任务更易于管理:


mal*_*cot 3

我认为您需要自定义:顶级轮询作业(调整为提示)运行一个自定义脚本来确定已更改或已添加的分支。然后,它将使用Jenkins API启动由分支名称参数化的作业。该参数可在您的作业中使用,通过分支名称(包括工件)自定义您需要的所有内容。