![](/img/trans.png)
[英]How do I list and kill all running jobs of a multibranch pipeline from the jenkins script console
[英]How do I check for build status, running Jenkins jobs from a BitBucket pipeline?
我們使用 BitBucket 來托管我們的 Git 存儲庫。
我們已經在本地托管的 Jenkins 服務器中定義了構建作業。
我們想知道我們是否可以使用 BitBucket 管道在拉取請求批准等之后觸發 Jenkins 中的構建。
通過其 REST API 在 Jenkins 中觸發作業相當簡單。
1: curl --request POST --user $username:$api_token --head http://jenkins.mydomain/job/myjob/build
這將返回一個位置響應標頭。 通過對它執行 GET,我們可以獲得有關排隊項目的信息:
2: curl --user $username:$api_token http://jenkins.mydomain/queue/item/<item#>/api/json
這將返回描述排隊項目的 JSON,指示該項目是否被阻止,以及原因。 如果不是,則包含構建的 URL。 有了這個,我們可以檢查構建的狀態,本身:
3: curl -–user $username:$api_token http://jenkins.mydomain/job/myjob/<build#>/api/json
這將返回更多 json,指示當前是否正在構建作業,如果已完成,則構建是否成功。
現在 BitBucket 管道步驟在 Docker 容器中運行,並且必須在 Linux 上運行。 我們的 Jenkins 構建作業在多個平台上運行,並非所有平台都是 Linux。 但 BitBucket 不應該關心。 進行必要的 REST API 調用可以在 Linux 中完成,就像我在上面的示例中那樣。
但是我們如何編寫腳本呢?
我們是否創建了一個運行 shell 腳本的單個步驟,該腳本運行命令 #1,然后重復調用命令 #2 直到構建開始,然后重復調用命令 #3 直到構建完成?
還是我們創建三個步驟,每個步驟一個? BitBucket 管道是否提供步驟循環? 調用一個步驟,稍等片刻,然后再次調用它直到成功?
我認為您應該使用 Bitbucket 管道或 Jenkins 管道。 使用兩者將為您提供許多選擇,並使項目比應有的更復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.