Создание динамической сцены в Jenkinsfile? - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть 3 сборки, которые могут происходить параллельно, которые настроены точно так же, за исключением имени команды.Я думал, что было бы неплохо автоматизировать это, и пытался часами, несколькими различными способами, ни один из которых не работал.Как я могу выполнить динамическое создание параллельных этапов?

final String androidDockerImage = 'thyrlian/android-sdk:2.4'

pipeline {
    agent none
    options {
        timeout(time: 30, unit: 'MINUTES')
    }
    environment {
        IS_CI = 'true'
    }

    stages {

        stage('CI Build') {

            parallel {

                stage('Code Style') {
                    agent { docker { image androidDockerImage } }
                    steps {
                        sh './scripts/sign_android_sdk_agreement.sh'
                        sh './gradlew codeStyle'
                    }
                }

                stage('Lint') {
                    agent { docker { image androidDockerImage } }
                    steps {
                        sh './scripts/sign_android_sdk_agreement.sh'
                        sh './gradlew lint --stacktrace'
                    }
                }

                script {

                    ['Internal Debug', 'Internal Release', 'Production Release'].forEach { variantName ->
                       final String variant = variantName.replace(" ", "")
                        stage($variantName) {
                           agent { docker { image androidDockerImage } }
                           steps {
                               sh './scripts/sign_android_sdk_agreement.sh'
                               sh "./gradlew clean target-android:assemble$variant --stacktrace"
                           }
                           post {
                               always {
                                   junit "**/TEST-*.xml"
                               }
                           }
                        }
                    }

                }

            }

        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...