[英]Run same stages in parallel on different nodes with Jenkins pipeline
[英]Run Jenkins parallel stages across different nodes using declarative syntax
設法成功地在同一節點上並行運行集成測試,我現在想將它們分布在不同的節點上。 在下面的示例中,我希望階段IT 1
和IT 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.