【发布时间】:2017-04-07 05:47:39
【问题描述】:
我使用 Jenkins 和多分支管道。我为每个活动的 git 分支都有一份工作。 新构建由 git 存储库中的推送触发。如果新版本出现在同一分支中,我想要的是中止当前分支中正在运行的构建。
例如:我提交并推送到分支feature1。然后BUILD_1 在 Jenkins 中开始。我再次提交并推送到分支feature1,而BUILD_1 仍在运行。我希望BUILD_1 被中止并启动BUILD_2。
我尝试使用stage concurrency=x 选项和stage-lock-milestone 功能,但未能解决我的问题。
我也读过这个帖子Stopping Jenkins job in case newer one is started,但我的问题没有解决方案。
你知道解决办法吗?
【问题讨论】:
-
我们让当前的工作完成,在某些情况下,如果我们从来没有工作,我们会让队列中的工作被清理(如引用的问题中所建议的那样。)不喜欢中止已经开始的工作的想法。
-
@MaTePe 对于 git 分支的自动化测试等情况,如果分支已更新,则在分支上完成测试通常没有什么好处,因为更新也需要进行测试。显而易见的解决方案是中止之前的测试。可能仍需要进行清理,但不会浪费资源来完成不必要的测试。
标签: git jenkins groovy multibranch-pipeline