我使用詹金斯和多分支管道。我爲每個活躍的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