2011-12-14 127 views
39

我是Jenkins的新手,我不確定這是否可行,但我想設置一個Web界面,在這裏有人可以點擊「開始工作」,這將告訴詹金斯開始一個特定的構建工作。調用jenkins外部的jenkins構建?

詹金斯有一個web服務,可以允許這樣的事情嗎?如果是這樣,有人可以指導我或發表一個簡單的例子嗎?

+0

你能解決這??,我要做同樣的事情,你可以讓我知道你是如何排序這個任何示例代碼或鏈接.. – Sam 2012-10-23 00:00:18

+0

是的,它實際上很簡單。就像所選的答案所說的那樣,您以JENKINS_URL/job/JOBNAME/build的形式調用URL?令牌= TOKEN 您在設置作業時設置了令牌。 – chaimp 2012-10-23 00:23:11

+0

如何傳遞參數,如mvn命令行參數。 – Sam 2012-10-23 00:25:39

回答

36

以下是文檔鏈接:Jenkins Remote Access API

查看Submitting jobs部分。

在您的作業配置中,您設置了一個令牌,然後創建POST請求JENKINS_URL/job/JOBNAME/build?token=TOKEN。這可能是最基本的用法。

2

Jenkins有一個記錄的REST API。你可以讓你的小web服務調用它。

7

啊哈,在文檔中找到它。如此簡單:http://YOURHOST/jenkins/job/PROJECTNAME/build

4

有一個使用Python的上述API的很好的例子。該項目名爲Python Jenkins,您可以在這裏找到它:link

21

Jenkins也支持參數化構建。

所以,如果你想傳遞可配置構建代的參數,你可以在調用Jenkins構建請求時通過發佈它來傳遞它們,http:// YOURHOST/jenkins/job/PROJECTNAME/buildWithParameters。

1
curl -H POST http://USERNAME:[email protected]_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN 

在作業配置設置令牌/構建觸發器/觸發器遠程構建。

0

隨着如果你有多個參數傳遞像一個令牌,你可能要引用在Linux上殼參數捲曲:

curl -H POST "http://USERNAME:[email protected]_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN&PARAMETER=VALUE" 
3

我需要添加參數,我想做到這一點通過https。我花了一段時間,但以下工作對我來說:

curl --request POST --url 'https://HOST_NAME/job/JOB_NAME/buildWithParameters?token=TOKEN' --header 'cache-control: no-cache' --header 'content-type: application/x-www-form-urlencoded' --data 'name1=value1&name2=value2'