我目前有一个Jenkins Pipeline作业,它有多个步骤,我只希望允许在前一个管道到达某一点时启动此管道的新运行。
例: 我的管道分为以下几个阶段: A - > B - > C - > D - > ë
如果我开始两次此管道,我希望第二次运行仅在第一次运行到达阶段C时启动。
由于
更新
这个管道是由Git触发器启动的,所以我想确保将2个推入回购的处理。
例如:
开发人员A推送提交和管道启动
开发人员B推送提交,但DevA的Pipeline仍在运行,所以我希望等待
当DevA Pipeline到达阶段C时,我想允许DevB的Pipeline开始
答案 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的一部分实施)