簡體   English   中英

如何檢查構建狀態,從 BitBucket 管道運行 Jenkins 作業?

[英]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.

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