簡體   English   中英

Jenkins 不同分支的油門插件

[英]Jenkins throttle plugin for different branches

有沒有人有在 Jenkins 中為 monorepo 設置 CI 管道的經驗,該管道根據運行構建的分支以不同方式限制並發構建?

在某些情況下,在 PR 分支上運行的構建包含所有在不同代理上並行運行的階段。 在主分支上運行的構建只包含一個階段。 我正在使用 Jenkins Throttle Concurrent Builds插件來限制並發構建的數量。

因為我們的代理包含兩個執行器(我們不想更改每個代理上執行器的數量),所以我在每個階段都使用了節流插件。 油門插件配置了一個類別,該類別允許無限數量的構建,但每個代理只允許一個階段構建。 由於每個階段使用相同的節流類別,每個階段只允許在尚未運行另一個階段的代理上運行,有效地解決了我們的並行階段構建配置。

當嘗試對我們的主分支構建使用相同的類別時,就會出現問題。 我想將主分支階段的並發構建數限制為 1,同時還防止主分支階段在也運行 PR 階段構建的代理上運行。

我已嘗試創建一個新類別以與主分支階段一起使用,該類別僅允許 1 個並發構建並將每個代理上的構建數量限制為 1。但僅將此類別用於主分支階段不尊重默認類別和master 分支階段構建在可能已經在運行 PR 階段構建的代理上。 當我嘗試在主分支階段結合使用這兩個類別時,只有主分支類別受到尊重,並且前面描述的行為仍然存在。

是否有另一種插件或方法來限制我不知道的更適合我的用例的並發構建,有人可能知道?

檢查 Jenkins 的lockable resources插件。 您可以使用lock('main')語句以避免並行執行。

更多詳細信息插件文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM