我正在與Jenkins構建服務器一起運行FPGA的合成/仿真。 現在我每晚都會構建並可以在Jenkins瀏覽器界面中手動開始構建。開始Jenkins使用批處理腳本構建
我的問題是:
是否有可能開始工作與建立一個批處理腳本,而不使用瀏覽器界面?
(我在64位Windows 7上運行詹金斯。)
我正在與Jenkins構建服務器一起運行FPGA的合成/仿真。 現在我每晚都會構建並可以在Jenkins瀏覽器界面中手動開始構建。開始Jenkins使用批處理腳本構建
我的問題是:
是否有可能開始工作與建立一個批處理腳本,而不使用瀏覽器界面?
(我在64位Windows 7上運行詹金斯。)
這裏是一個curl命令爲例(與參數的工作):
curl -X POST -u YOUR_USER:YOUR_USER_PASSWORD http://YOUR_JENKINS_URL/job/YOUR_JOB/buildWithParameters?PARAM1=value1&PARAM2=value
而且不帶參數的作業:
curl -X POST -u YOUR_USER:YOUR_USER_PASSWORD http://YOUR_JENKINS_URL/job/YOUR_JOB/build
如果你不想用你的用戶名/密碼,您可以爲您的詹金斯用戶的API令牌:
而在你的curl命令使用此令牌:
curl -X POST http://YOUR_JENKINS_URL/job/YOUR_JOB/build?TOKEN=YOUR_API_TOKEN
可以觸發詹金斯的工作與配置的令牌,而不是您的用戶名/密碼,這樣可以讓你分享一個觸發腳本,而不揭露你自己的憑據。
然後在curl
命令中使用該URL來觸發構建。例如:
curl -I https://${JENKINS_URL}/job/tmp/job/dummy-test/build?token=MY_TOKEN
的-I
參數告訴curl
打印響應,你可以用它來確定結果狀態的頭。詹金斯的答覆與HTTP 201如果成功的話:
$ curl -I https://<JENKINS_URL>/job/tmp/job/dummy-test/build\?token\=MY_TOKEN
HTTP/1.1 201 Created
Cache-Control: public
Content-Length: 0
Date: Mon, 11 Apr 2016 12:47:26 GMT
Location: https://<JENKINS_URL>/queue/item/1707/
Pragma: public
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
Connection: keep-alive
當我試圖通過捲曲我最後總是得到「未授權」的錯誤觸發我的工作。
後來我發現這是因爲我完全禁用了服務器上的匿名訪問。解決的辦法是安裝以下插件:https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin
你可以用-i選項此使用curl命令。爲jenkins Job創建一個API令牌並使用它來觸發該作業。你也可以使用jenkins用戶密碼。
命令將
curl -I -u auto:<user_api_token> http://<jenkins_Server>/job/test/build?token=wefiytgwiefiweihfqweiodf
非常感謝,它工作得很好! :) –
作爲tony19下面提出的@,你也可以爲您的用戶的API令牌(如果你不想使用用戶名/密碼)。我已經更新了我的答案。高興地知道它解決了你的問題:) –
是否有可能通過SVN Url的參數呢?很高興通過命令行告訴Jenkins運行一個特定的工作(在我的情況下是用於FPGA的綜合)並檢出SVN中的所有項目。 Jenkins中的我的Python腳本能夠在FPGA合成的工作區文件夾中運行每個結帳,但我希望讓我的用戶能夠簡單地通過單個批次及其特定簽出來啓動作業。 –