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

如何配置Jenkins从Mercurial中的不同分支构建项目,mercurial,hudson,jenkins,hudson-api,Mercurial,Hudson,Jenkins,Hudson Api,我有一个Jenkins构建作业,在默认分支上有一个Mercurial触发器,可以很好地构建“发布候选”。然后,此作业将启动烟雾测试作业 我们使用每个特征分支一个分支的方案,因此在任何给定的时间,Mercurial中可能会有多达十几个不同的活动分支(但活动分支会定期变化) 我想要一个由对任何分支的更改触发的Jenkins作业,它将为所有需要更新的分支构建并运行冒烟测试。每次进行构建时,我们都应该创建名为的构件以匹配分支 我在另一个答案中看到了一个建议,即在Mercurial触发器中使用“tip”而

我有一个Jenkins构建作业,在默认分支上有一个Mercurial触发器,可以很好地构建“发布候选”。然后,此作业将启动烟雾测试作业

我们使用每个特征分支一个分支的方案,因此在任何给定的时间,Mercurial中可能会有多达十几个不同的活动分支(但活动分支会定期变化)

我想要一个由对任何分支的更改触发的Jenkins作业,它将为所有需要更新的分支构建并运行冒烟测试。每次进行构建时,我们都应该创建名为的构件以匹配分支

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


每次创建分支时,我都可以创建一个新作业,但由于我们分支的动态特性,这将是一项大量的持续工作。

我认为您需要自定义:顶级轮询作业(调整为tip)运行一个自定义脚本,确定已更改或已添加的分支。然后,它将用于启动由分支名称参数化的作业。该参数可在作业中用于根据分支名称(包括工件)自定义所需的一切

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

  • (支持git)
  • (支持git、mercurial和svn)