2010-02-26 42 views
4

我在哈德森哈德森B.作業A和作業B我想工作B.觸發作業A如何通過另一份工作是在一個不同的哈德森觸發哈德森工作

+0

任何知道答案的人都會很快回復,它真的很緊急..... plz幫助 – Sreedevi 2010-02-26 10:29:09

+4

缺乏您的計劃或閱讀並不構成我們的緊急情況。 – 2010-02-26 10:58:12

+1

曾經想過哈德遜奴隸?或者你真的需要兩個獨立的Hudson服務器嗎? – 2010-02-26 13:40:41

回答

5

我沒有使用哈德森,但我猜你的最簡單的方法是使用URL觸發:

http://wiki.hudson-ci.org/display/HUDSON/URL+Change+Trigger

我認爲是可以用於這個最新版本的URL。

+1

如果只有在作業A成功時才觸發作業B,我認爲最後一個成功的URL http:// SERVER:PORT/job/JOBNAME/lastSuccessfulBuild /應該與URL更改觸發器一起使用。如果應始終觸發作業B,請嘗試最後一個構建URLhttp:// SERVER:PORT/job/JOBNAME/lastBuild/ – 2010-02-26 13:45:12

6

在您的工作B配置中,檢查觸發器遠程構建(例如,從腳本)複選框並提供令牌。

那裏的幫助文本顯示了您可以調用的觸發遠程腳本構建的URL(例如,來自Hudson作業A中的shell腳本)。

但是,無論工作A的結果如何,都會觸發工作B.
Morechilli的答案可能是最好的解決方案。

+3

當作業的某個步驟失敗時,Hudson不會執行以下步驟。因此,當您的遠程作業調用是最後一步時,只有在上一步成功時纔會執行。 – 2010-02-26 13:41:24

4

在最新版本的Hudson中,lastSuccessfultBuild/HTML頁面將包含自構建以來的過去的時間,這對每次調用都會有所不同。這會導致URL更改觸發器旋轉。

一種修復方法是使用xml,json或python API只請求一部分信息。使用「樹」請求參數,以下URL將返回僅包含上次成功構建版本號的XML文檔。

http://SERVER:PORT/job/JOBNAME/lastSuccessfulBuild/api/xml?tree=number

使用這個網址恢復我從URL改變觸發器所期望的行爲。

+0

比試圖使用完整的HTML頁面更好的解決方案,謝謝。 – Jason 2011-01-05 21:27:37

2

就個人而言,我覺得這樣做最簡單的方法是看編譯時間戳: PROJECT_NAME/lastSuccessfulBuild/buildTimestamp

1

我使用wget的觸發編譯:

wget --post-data 'it-just-need-to-be-a-POST-request' 
--auth-no-challenge --http-user=myuser --http-password=mypassword 
http://jenkins.xx.xx/xxx/job/A/build?delay=0sec 

還有其他的方式如何您可以觸發構建,請參閱jenkins的REST和其他API。 但是這對unix很有效。