это не достаточно динамично для моих нужд - как написано в вопросе: «В конце этого этапа я буду знать, на каком агенте должен работать второй этап». Так что я еще не знаю имя узла, когда начинается работа.

ли способ установить метку агента динамически, а не в виде простой строки?

Работа имеет 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»

Ответы на вопрос(5)

Ваш ответ на вопрос