Как я могу получить имя узла, где выполнялось вышестоящее задание в нижестоящем задании в конвейере - PullRequest
0 голосов
/ 14 мая 2019

У меня есть несколько узлов с меткой «build_run» (например, узел1, узел2, узел3). Поэтому, когда я запускаю этот конвейер, я не могу быть уверен, что задания «Построить» и «Выполнить» выполнялись в одном узле. «Сборка» может происходить в «node1», а «Run» может происходить в «node3». Я хочу, чтобы и Build и Run происходили в одном узле. Но я не хочу жестко писать то же самое. Я хочу знать, какой узел подхватил Build. Так что я могу передать его в качестве параметра узла для запуска. Как я могу решить это?

stage('Build, run) {
    for(int i=0; i<4; ++i){
        def builds = { 
            stage('Build') {
                build job: 'Build', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: 'build_run']]
            }

            stage('Run') {
               build job: 'Run', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: 'build_run']]
            }
        }
    }
}
parallel builds

1 Ответ

0 голосов
/ 20 мая 2019

Я использовал что-то вроде ниже, и это сработало для меня. (Использовал rawBuild.getEnvironment () ['NODE_NAME'], чтобы получить узел, в котором выполнялось задание.)

    def node_to_use = ""
    stage('Build, run) {
        for(int i=0; i<4; ++i){
            def builds = { 
                stage('Build') {
                    def build_var = build job: 'Build', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: 'build_run']]
                    node_to_use = build_var.rawBuild.getEnvironment()['NODE_NAME']
                }

                stage('Run') {
                   build job: 'Run', parameters: [[$class: 'LabelParameterValue', name: 'TestMachine', label: node_to_use]]
                }
            }
        }
    }
    parallel builds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...