允许在管道中的某个步骤之后启动相同的Jenkins作业

时间:2016-05-27 12:44:05

标签: jenkins jenkins-workflow jenkins-pipeline

我目前有一个Jenkins Pipeline作业,它有多个步骤,我只希望允许在前一个管道到达某一点时启动此管道的新运行。

例: 我的管道分为以下几个阶段: A - > B - > C - > D - > ë

如果我开始两次此管道,我希望第二次运行仅在第一次运行到达阶段C时启动。

由于

更新

这个管道是由Git触发器启动的,所以我想确保将2个推入回购的处理。

例如:

开发人员A推送提交和管道启动

开发人员B推送提交,但DevA的Pipeline仍在运行,所以我希望等待

当DevA Pipeline到达阶段C时,我想允许DevB的Pipeline开始

3 个答案:

答案 0 :(得分:2)

您可以使用lock步骤(包含在lockable-resources-plugin中。

您的脚本如下所示:

lock('my-resource') {
  stage('A') {...}
  stage('B') {...}
  stage('C') {...}
}
stage('D')
stage('E')

答案 1 :(得分:0)

您可以使用“Throttle Concurrent Builds Plugin”https://wiki.jenkins-ci.org/display/JENKINS/Throttle+Concurrent+Builds+Plugin

将A,B和C放在一个组中,并且只允许该组的一个构建作业

答案 2 :(得分:0)

我认为最“官方”的方式是使用lockable resources plugin。(作为https://issues.jenkins-ci.org/browse/JENKINS-30269的一部分实施)