我使用詹金斯和多分支管道。我为每个活跃的git分支都有一份工作。 新构建是通过推入git存储库触发的。我想要的是在当前分支中中止正在运行的构建,如果新分支出现在同一分支中。詹金斯 - 中止运行构建,如果新的启动
例如:我承诺并推送到分支feature1
。然后BUILD_1
开始在詹金斯。我做了另一次提交并推送到分支feature1
而BUILD_1
仍在运行。我想要BUILD_1
被中止并开始BUILD_2
。
我试着用stage concurrency=x
选项和stage-lock-milestone功能,但是没有设法解决我的问题。
此外,我已阅读此线程Stopping Jenkins job in case newer one is started,但没有解决我的问题。
你知道这个解决方案吗?
我们让当前的作业完成,而且我们有些情况下,如果我们从来没有(如提到的问题中所建议的)那样让队列中的工作得到清理。不喜欢中止已经开始工作的想法。 – MaTePe
@MaTePe对于诸如自动测试git分支的情况,如果分支已更新,那么在分支上完成测试通常没什么好处,因为更新也需要测试。显而易见的解决方案是中止早期的测试。清理可能仍需要完成,但是资源不会浪费,从而完成不必要的测试。 – bschlueter