2016-04-11 16 views
6

我正在與Jenkins構建服務器一起運行FPGA的合成/仿真。 現在我每晚都會構建並可以在Jenkins瀏覽器界面中手動開始構建。開始Jenkins使用批處理腳本構建

我的問題是:

是否有可能開始工作與建立一個批處理腳本,而不使用瀏覽器界面?

(我在64位Windows 7上運行詹金斯。)

回答

11

這裏是一個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令牌:

enter image description here

而在你的curl命令使用此令牌:

curl -X POST http://YOUR_JENKINS_URL/job/YOUR_JOB/build?TOKEN=YOUR_API_TOKEN 
+0

非常感謝,它工作得很好! :) –

+0

作爲tony19下面提出的@,你也可以爲您的用戶的API令牌(如果你不想使用用戶名/密碼)。我已經更新了我的答案。高興地知道它解決了你的問題:) –

+0

是否有可能通過SVN Url的參數呢?很高興通過命令行告訴Jenkins運行一個特定的工作(在我的情況下是用於FPGA的綜合)並檢出SVN中的所有項目。 Jenkins中的我的Python腳本能夠在FPGA合成的工作區文件夾中運行每個結帳,但我希望讓我的用戶能夠簡單地通過單個批次及其特定簽出來啓動作業。 –

8

可以觸發詹金斯的工作與配置的令牌,而不是您的用戶名/密碼,這樣可以讓你分享一個觸發腳本,而不揭露你自己的憑據。

  1. 轉到您的工作配置。
  2. 向下滾動至構建觸發器,然後選中該框爲遠程觸發構建(例如從腳本),並輸入認證令牌(例如「MY_TOKEN」)。

enter image description here

  • 複印根據你的構建是否具有參數低於認證令牌字段中的URL中的一個。
  • 然後在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