2017-07-04 52 views
0

我有兩個Jenkins工作流作業,它們使用不同的參數啓動相同的作業,即他們構建的分支。後一項工作在幾個平臺上構建項目。 「頭」工作,即workflow工作可能在不同的機器上開始。另外,安裝中有兩臺linux機器。Jenkins工作流作業:限制它可以運行的位置

有時會發生這樣的情況,其中一個(比如master)從其中一臺linux機器啓動,另一個啓動另一臺。他們都必須在Linux機器上構建一個目標,並且由於它們都很忙,所以兩個作業都會停止。

對於通常的作業,可以限制它們可以運行的位置,但是,我找不到如何限制工作流作業的運行位置。顯然,它應該使用groovy腳本來完成,但是它確實給我留下了深刻的印象。

有沒有解決方案?

回答

1

這裏有一個Jenkinsfile做全球(這是告訴詹金斯整個管道必須在從與這三個標籤下運行):

pipeline { 
    agent { label 'docker && git && rbenv' } 
    stages { 
    stage('commit_stage') { 
     steps { 
     echo 'building stuff' 
     } 
    } 
    } 
} 

,你也可以通過選擇特定的奴隸或是某些功能node步驟爲任何階段或階段的一部分:

pipeline { 
    agent { label 'docker && git && rbenv' } 
    stages { 
    stage('commit_stage') { 
     steps { 
     // this overrides the top-level agent requirements 
     node('linux_with_zsh') { 
      echo 'building stuff' 
     } 
     } 
    } 
    } 
} 
相關問題