詹金斯方案的細節:
======================
- 構建執行人數(無論是在主/從)在詹金斯:
- 上游作業:USJob和這個工作可以在任何構建執行人運行
- 下行工作:DSJob &該作業具有120秒一個靜默期+它綁定在特定的bui上運行只有執行者。詹金斯上游 - 下游的工作 - 平靜期
- USJob有這樣的構建步驟:回聲「生日快樂詹姆斯」 ,它需要5秒鐘就可以完成這項工作
- DSJob有這樣的構建步驟:回聲「詹姆斯·邦德死了」 ,它需要5秒鐘就可以完成這項工作
現在,讓我們說,我們跑USJob(父母/上游作業)5倍,這將--->調用DSJob(兒童/下行作業)5次爲好,那麼,我什麼想要的是:
- Jenkins應運行USJob 5次,因此在每次調用期間調用DSJob子作業。
DSJob不會運行DSJob(只要它從USJob調用),DSJob就會處於空閒狀態或在隊列中等待「120秒」(即設置爲安靜期)。
現在,如果我們看到這種情況,UPJob將調用DSJob 5次,並且DSJob將排隊等候,直到達到相當的時間。因此,一旦安靜時期結束,詹金斯將開始DSJob。
我的問題: 什麼我想看到的是什麼樣的設置/選項我DSJob(子作業)設置,以便DSJob只運行一次,並不在乎它是多少時調用。 換句話說:如果詹姆斯·邦德/有人死一次,他不能再死! ...... 拿到了吧!但有人可以祝他生日快樂N次在他的BDay。這個概念類似於在TFS(Team Foundation Server - 內部構建定義的TRIGGER部分)中以累積方式運行持續集成(CI)構建,即在源控制發生變化時立即運行構建BUT積累所有對源代碼控制的更改,直到正在運行的CI構建完成,下一個CI構建將選擇開發人員完成的所有其他源代碼管理更改。
我同意,因爲這是一種選擇,我最終會走這條路。感謝您分享Eldad。我們基本上不想通過在工作區中放置文件來使用,因爲我們在任何機器上的任何可用的從機上運行作業,並且不希望在可供所有機器/從機訪問的中央NAS上創建文件。另外,如果父子/上游工作完成了X狀態,我不希望子/下游工作查找,然後運行它。 – 2013-02-28 16:42:27
只需注意 - 腳本不必保存爲外部文件。它也可以寫入作業的配置中。Groovy腳本也被支持。 – 2013-03-01 05:49:51