2014-06-24 77 views
1

我有一個GitHub存儲庫(稱爲X)的Python代碼包和一個單獨的GitHub存儲庫(稱爲X-tests),它包含該包的測試(它們是獨立的存儲庫,因爲包含測試的存儲庫是私人的,以便它可以運行其他私人代碼)。我想這樣做是爲了當有人推送到X存儲庫時,Jenkins將從X測試存儲庫運行測試,然後做一些與X存儲庫相關的其他內容(例如製作一個點子輪)。如何通過推送到不同的存儲庫來觸發GitHub存儲庫的Jenkins構建?

我能想到的要做到這一點的唯一方法是有三個獨立的詹金斯工作:

  1. ,什麼也不做,其GitHub的庫是X,其中版本是通過推到X
  2. 觸發了一個作業
  3. 一個運行測試的作業,其GitHub存儲庫是X-test,其中構建由作業完成觸發1
  4. 作業使製作輪等,其GitHub存儲庫爲X,其中構建由完成的工作2

有沒有更簡單的方法來做到這一點?

回答

0

我認爲這是一個非常標準的方法來實現簡單的構建測試後測管道。作業1是名稱 -commit-stage,作業2是名稱-測試階段或名稱集成階段和第三個工作,爲您的點子輪。

您可以在build pipeline jenkins插件中看到更復雜的管道。

檢查您的第三份工作是否應該使用作業1的工件而不是存儲庫X.這將爲您的管道帶來原子性,因爲有人可能在作業已經開始時將某些東西推送到存儲庫X. Copy Artifact Plugin對此很有用,或者您可以將本地作業1工作區引用爲作業的源3(作爲構建步驟中的參數)。

您還需要確保在更改存儲庫X之前應更改存儲庫X-Tests,因爲作業2可能使用與存儲庫X不同步的存儲庫X-Test中的代碼,從而導致測試失敗。

+0

哦好吧。你能解釋一下如何讓工作3使用工作1的「工件」(或者只是工作1時運行的倉庫狀態)? – Avril

相關問題