2016-04-28 353 views
2

如果有任何更改,我們當前會輪詢svn並運行作業。如果最初的工作通過,我們然後觸發一份工作。通過輪詢從作業運行中觸發定時器上的Jenkins作業

此外,我想觸發第二項工作,每天只運行一次。因此,如果初始工作(工作1)運行40次,工作2也將運行40次,但工作3只運行1次。 (只要作業3確切地知道作業1的最後一個實例在哪臺機器上運行,就可以解耦)

我最初的想法是使用類似於節點追獵者(https://wiki.jenkins-ci.org/display/JENKINS/Node+Stalker+Plugin)的插件來獲取節點的值之前的運行已經開始。該插件似乎沒有工作(它運行在任何節點上,就好像插件什麼都不做)。

是否有另一種方法呢?

回答

1

我不知道另一種以類似於節點纏擾者的方式來做到這一點,但是還有其他兩種選擇。

醜陋: 如果所有的機器有一個網絡驅動器可以訪問只保留一個文本文件,當一臺機器完成作業1和2成功則更新與該名稱的唯一標識符的文本文件,然後選擇作業三個讀取該文件,並知道誰最後運行作業1和2。

不太醜陋: 這取決於運行作業1和2需要多長時間(越短越好,越長越不可行)。運行4作業鏈:

作業3發射器 - >工作1 - >工作2 - >作業3.

這樣你就可以跟蹤正在使用的機器作業1和作業2和將這些作爲構建變量傳遞到作業3中。

+0

我曾考慮過這兩者。這個問題變得臃腫。存儲文本文件不是一個可怕的情況,它真的很難看。運行三個工作鏈並不是什麼大問題(它增加了大約半小時的總執行時間,在這種情況下微不足道),但我需要做一個額外的工作(在這種情況下實際上更重要的是由於設置 - 多個配置都需要他們自己的工作)。 –

相關問題