簡體   English   中英

如何為遠程API在Jenkins中觸發的構建獲取正確的構建號

[英]How to get the right build number for a build triggered in Jenkins by remote API

我正在使用對http:// jenkins:8080 / view / projectAlpha / job / deploy_job_with_params / build的 Python請求在Jenkins中使用參數觸發構建,但是我沒有任何隊列或構建號來標識我的構建。

根據詹金斯的/ api頁面獲取上述網址:

“要以編程方式安排新的構建,請發布到此URL(表示/ build URL-RaamEEIL)。如果構建具有參數,請發布到此URL(表示/ buildWithParameters URL-RaamEEIL),並將參數作為表單數據提供。這樣,成功的排隊將導致201狀態代碼的位置HTTP標頭指向隊列中該項的URL。”

但是,不是在部署時返回的位置標頭中獲取隊列的URL(例如http:// jenkins:8080 / queue / item / 21038 / api / json ),而是獲得URL http:// jenkins:8080 / view / projectAlpha / job / deploy_job_with_params /所以基本上我沒有任何隊列號或內部版本號

我閱讀了有關解決方法的建議,以發送帶有一些ID的附加參數,該參數可用於驗證最新的版本是我的版本,或用於搜索整個版本列表,直到找到正確的版本。

謝謝。

好吧,事實證明我把事情搞混了。 這似乎發生在許多其他人身上,所以這里有一些信息。

/ build url-返回位置=作業的url。 在您的構建中不包含信息

/ buildWithParameters url-返回location =構建隊列項的url

根據丹尼爾·貝克(Daniel Beck)對https://issues.jenkins-ci.org/browse/JENKINS-30317的評論-

(通過“ This”(作者)表示/ build url)

那就是問題所在。 這實際上不是API。 如我之前所寫,所記錄的API使用/ buildWithParameters進行參數化構建。 假裝是網絡瀏覽器。

...因為網絡瀏覽器將被重定向到空白的404錯誤頁面。 同樣,您實際上並沒有在這里使用API​​,而是在假裝是網絡瀏覽器。

因此,盡管API頁面指出您可以請求/ build URL,但如果要獲取構建的隊列項URL作為“ location”標頭,則必須請求/ buildWithParameters URL。

暫無
暫無

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

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