簡體   English   中英

使用聲明性語法跨不同節點運行Jenkins並行階段

[英]Run Jenkins parallel stages across different nodes using declarative syntax

設法成功地在同一節點上並行運行集成測試,我現在想將它們分布在不同的節點上。 在下面的示例中,我希望階段IT 1IT 2在不同的節點上運行,而讓IT 3在原始節點上運行。 通過嘗試了幾種組合node作為父stage('IT 1')node作為一個孩子,但我得到兩個語法錯誤。 實現此目的的正確語法是什么?

pipeline {

  agent { label '!master' }

  stages {
    stage('Integration Tests') {
      parallel {
        stage('IT 1 (slow)') {
          steps {
            sh 'run-it-1.sh'
          }
        }
        stage('IT 2 (slow)') {
          steps {
            sh 'run-it-2.sh'
          }
        }
        stage('IT 3 (quick)') {
          steps {
            sh 'run-it-3.sh'
          }
        }
      }
    }
  }
}

編輯:使用label代替node適用於聲明性管道。 下面的例子:

stage('IT 1 (slow)') {
  agent { label '!master' }
  steps {
    sh 'run-it-1.sh'
  }
}

從Declarative 1.2版開始,您可以直接聲明要在每個並行階段使用的代理類型: https//jenkins.io/blog/2017/09/25/declarative-1/

未測試此特定用例,但我假設如果您不為階段“ IT 3”聲明任何agent {} ,它將在原始節點上執行。

希望它會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM