Как объявить много агентов в Jenkinsfile с декларативным синтаксисом?

В синтаксисе сценария Pipeline мы используем этот синтаксис для объявления определенных шагов для определенных узлов:

steps{
    node('node1'){
        // sh
    }
    node('node2'){
        // sh
    }
}

Но я хочу использовать декларативный синтаксис конвейера, могу ли я поставить много агентов?


person codeGeass    schedule 27.03.2018    source источник


Ответы (1)


Что вы можете. Просто взгляните на пример (из docs):

pipeline {
    agent none
    stages {
        stage('Build') {
            agent any
            steps {
                checkout scm
                sh 'make'
                stash includes: '**/target/*.jar', name: 'app' 
            }
        }
        stage('Test on Linux') {
            agent { 
                label 'linux'
            }
            steps {
                unstash 'app' 
                sh 'make check'
            }
            post {
                always {
                    junit '**/target/*.xml'
                }
            }
        }
        stage('Test on Windows') {
            agent {
                label 'windows'
            }
            steps {
                unstash 'app'
                bat 'make check' 
            }
            post {
                always {
                    junit '**/target/*.xml'
                }
            }
        }
    }
}
person Vadim Kotov    schedule 27.03.2018
comment
Спасибо, агент в декларативном синтаксисе эквивалентен узлу в скриптовом синтаксисе? Я видел в документации, что узел просто добавляет дополнительные параметры (например, customWorkspace) - person codeGeass; 27.03.2018
comment
Да. Но вам нужно определить шаги сборки в steps, в то время как в синтаксисе сценариев они просто определены внутри node. Вы можете переключать декларативный/сценарный синтаксис в примерах в документации, просто взгляните на различия. - person Vadim Kotov; 27.03.2018
comment
Кроме того, агент против узла - person Vadim Kotov; 27.03.2018