簡體   English   中英

如何禁用 jenkins 管道作業

[英]how to disable jenkins pipeline job

我正在使用 Jenkins 2.0 的管道作業,但我沒有看到我在舊 Jenkins 版本中習慣使用的選項“禁用作業”。 我錯過了什么嗎? 是否仍然可以禁用(管道)作業?

從 Jenkins 2.89.4 開始,您可以簡單地使用“禁用項目”選項來禁用管道作業。

沒有禁用 jenkins-pipeline 作業的選項。

以下 jira 票正在跟蹤問題:

https://issues.jenkins-ci.org/browse/JENKINS-27299

  • 轉到作業配置
  • 在“構建觸發器”下選擇“禁用此項目”
  • 保存

在此處輸入圖片說明

如果您沒有找到禁用按鈕。 對於大多數工作,這應該可以解決問題。 只需將/disable附加到作業 URL 的末尾即可。 然后 Jenkins 會將您重定向到您可以Post的頁面。 同樣適用於/enable

在此處輸入圖片說明

對於多分支管道項目,

  • 單擊管道“配置”
  • 在“分行來源”下,在“物業策略”下
    • 點擊“添加屬性”
    • 選擇“禁止自動 SCM 觸發”

現在,沒有 github 分支觸發器將運行構建作業。 (這將禁用所有分支的觸發器)

我有一個類似的案例,發現我們的很多作業都是/由自動“播種機”作業設置的,該作業從作業 DSL 創建它們,並且它們的配置不可編輯。 所以我去了 GitHub 並禁用了連接兩者的 webhook。 因此該作業仍處於活動狀態,但不應再由 GitHub 活動觸發。

如果像我一樣,您的 Jenkins 作業是由 DSL 工作流自動創建的,您將無法編輯包含所有實際分支的頂級作業的配置,以禁用來自 github 掛鈎的自動構建。 我目前無法找到一種方法來以編程方式禁用 jenkinsfile 中的整個管道,除了在其他 SO answer 中提到的每個階段使用 when trigger when triggered by子句之外。 此外,這會導致它運行並成功,這可能不是我們想要的。

所以對我來說最簡單的解決方案是:

  1. 將存儲庫中所有分支上的 Jenkinsfiles 的名稱更改為 Jenkinsfile 以外的Jenkinsfile ,以便 Jenkins 的 SCM 輪詢不會選擇它。 我選擇了Jenkinsfile.manual 這假設 job-auto-creator 設置為查找“Jenkinsfile”; 根據需要進行調整。
  2. 自動創建的作業應該在下次掃描 repo 時刪除自己,無論是來自 github hook、計划掃描還是您按下“立即掃描”。
  3. 為您的存儲庫手動創建一個新的 Multibranch Pipeline 作業,設置構建配置以查找Jenkinsfile.manual (或您選擇的任何名稱)。
  4. 配置您通常使用的任何分支行為,但還要添加所有分支的屬性策略獲得相同的屬性 > 抑制自動 SCM 觸發

這對我來說感覺“正確”,你的里程因人而異。

我在我的Branch Sources -> GitHub -> Behaviors -> Filter by name (with wildcards) -> Exclude部分中排除了所有分支( Exclude: *

Jenkins 截圖:Branch Sources -> GitHub -> Behaviors -> Filter by name (with wildcards) -> Exclude: *

暫無
暫無

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

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