Как я могу установить метку агента динамически? - PullRequest
0 голосов
/ 28 марта 2019

То, чего я пытаюсь достичь, - запустить несколько этапов на одном узле, которые будут захвачены на начальном этапе, а затем будут использоваться на некоторых из следующих этапов по мере необходимости.

Ниже приведен образец Jenkinsfile:

pipeline {
    agent {
    label 'redhat_linux'
}
     stages {
            stage('build') {
                    options {
                            timeout(time: 100, unit: 'SECONDS')
                    }
                    input {
                            message "Should we continue?"
                            ok "Yes, we should."
                            submitter "user1,user2"
                            parameters {
                                     string(name: 'PERSON', defaultValue: 'Mr Jenkins', description: 'Who should I say hello to?')
                            }
                    }
                   steps {
                        script{
                                agentName = "${NODE_NAME}"
                                echo "The node name is :: ${agentName}"
                            }
                            sh 'pwd;ls -ltr'
                     }
            }
            stage("promote"){
                 agent{
                    node {
                        label "${agentName}"
                    } 
                }
                 steps{
                          script{
                                echo "The node name is :: ${agentName}"
                          }
                            sh 'echo "This is a promote step " '
                }
            }
         }
     }

Я сталкиваюсь со следующей ошибкой:

groovy.lang.MissingPropertyException: No such property: agentName for class: groovy.lang.Binding

Я пробовал решение по ссылке ниже, но это не сработало.

В декларативном конвейере jenkins - можно ли динамически установить метку агента?

Версия Jenkins: CloudBees Jenkins Enterprise 2.121.3.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...