Удалось успешно запустить интеграционные тесты параллельно на одном узле, и теперь я хотел бы распределить их по разным узлам. В приведенном ниже примере я хочу, чтобы этапы 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'
}
}
node
вместоlabel
. Из stackoverflow.com/questions/42050626/ : Агент предназначен для декларативных конвейеров, а узел — для скриптовых конвейеров. 07.12.2017