2012-03-10 54 views
5

假設我通過向/job/awesomesauce/build發送GET請求來觸發構建。是否有可能檢索觸發構建的ID?是否有可能檢索通過其API啓動的Jenkins構建的id?

我知道我可以嘗試訪問/job/awesomesauce/lastBuild/api/json,但會給我錯誤的信息的情況下有多個構建同時運行。此外,在它向我提供關於當前正在運行的構建的信息之前,似乎有些輕微的延遲(幾秒鐘)。

回答

4

我不得不做這樣的事情,這裏是我使用的解決方法:我有一個虛擬參數,我傳遞給構建(在我的情況下,它是另一個構建的BUILD_ID;在你的情況下,它可能是一個時間戳),然後我查詢並解析了構建隊列api([server]/queue/api/...)和常規api(如果構建已完成)包含適當參數值的構建。

1

在http響應頭「location」中,您可以獲取隊列項ID。然後你可以輪詢/隊列/項目//API/JSON獲取它的可執行編號,這是編譯ID。

+0

新的構建已經開始,但是'位置'的迴應是工作uri而不是構建uri。 編輯:https://issues.jenkins-ci.org/browse/JENKINS-12827 – mj41 2013-10-29 08:08:28

+0

我描述它在一些細節在這裏:http://stackoverflow.com/questions/24507262/retrieve-id-of-remotely-觸發 - 詹金斯在職/ 28524219#28524219 – morgwai 2015-02-17 09:28:10

相關問題