это не достаточно динамично для моих нужд - как написано в вопросе: «В конце этого этапа я буду знать, на каком агенте должен работать второй этап». Так что я еще не знаю имя узла, когда начинается работа.
ли способ установить метку агента динамически, а не в виде простой строки?
Работа имеет 2 этапа:
Первый этап - всегда работает на "главном" агенте. В конце этого этапа я буду знать, на каком агенте должен работать второй этап.Второй этап - должен работать агент, решенный на первом этапе.Моя (не рабочая) попытка выглядит так:
pipeline {
agent { label 'master' }
stages {
stage('Stage1') {
steps {
script {
env.node_name = "my_node_label"
}
echo "node_name: ${env.node_name}"
}
}
stage('Stage2') {
agent { label "${env.node_name}" }
steps {
echo "node_name: ${env.node_name}"
}
}
}
}
Первый эхо работает нормально, и выводится my_node_label. Второй этап не запускается на агенте с меткой «my_node_label», и консоль печатает:
Нет узлов с меткой "ноль"
Может быть, это может помочь - если я просто введу «$ {env}» в поле метки, я вижу, что это класс java, поскольку он печатает:
Нет узлов с меткой «org.jenkinsci.plugins.workflow.cps.EnvActionImpl@79c0ce06»