То, чего я пытаюсь достичь, - запустить несколько этапов на одном узле, которые будут захвачены на начальном этапе, а затем будут использоваться на некоторых из следующих этапов по мере необходимости.
Ниже приведен образец 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