Запуск параллельных сборок из триггеров задания конвейера Дженкинса и ожидание того же задания в другом проекте - PullRequest
0 голосов
/ 05 мая 2020

У меня есть этот тестовый код, он запускает 2 сборки на разных исполнителях на build_servers узлах, как и ожидалось.

pipeline {
    agent { label 'myserver' }
    stages {
        stage('1') {
            steps {
                script {
                    def tests = [:]
                    for (f in [ 'x', 'y' ]) {
                        tests["${f}"] = {
                            node('build_servers') {
                                stage('Clean Workspace') {
                                     echo "cleaning up Ws ${f}"
                                     step([$class: 'WsCleanup'])
                                }
                                stage('create Wspace txt file') {
                                        script {
                                            props="Wspace=${workspace}"
                                            dir ( 'wspace') {
                                                    writeFile file: 'params.txt', text: props
                                            }
                                        }
                                }
                                stage('Run other job') {
                                    script {
                                        println('calling other project')
                                        props = readProperties file: "wspace/params.txt"
                                           file_params = props.collect {
                                                string(name: it.key, value: it.value)
                                        }
                                        build job: "other_job2", parameters: file_params, wait: true, propagate: true
                                    }
                                }
                            }
                        }
                    }
                    parallel tests
                }
            }
        }
    }
}

Я ожидаю, что он вызовет 2 разные сборки на other_job2, но он отправляет только одно задание, и оба tests['x'] and tests['y'] ждут, пока одно и то же задание завершится sh, почему? не должен ли он создавать 2 разных задания в проекте other_job2, одно для x и одно для y?

...