Контур конвейера JenkinsFile - PullRequest
       6

Контур конвейера JenkinsFile

0 голосов
/ 09 ноября 2018

У кого-нибудь есть pipeline{} пример с циклом?

Я пытаюсь «сжать» длинный и повторяющийся JenkinsFile, используя циклы для запуска одной и той же логики на нескольких хостах.

... но ... я не получаю петли прямо в моем piepline{} JenkinsFile.

В частности, я делаю это ...

pipeline {
    agent { label 'buildhost' }

    stages {
            stage("checks") {
                parallel {
                    // ['mac-amd64', 'linux-arm', 'win-amd64',  'linux-x86', 'linux-armv8', 'linux-amd64' ].each {
                    ['mac-amd64', 'linux-armv8', 'linux-amd64'].each {
                        host ->
                            stage("checks / ${host}") {
                                agent { label "buildhost-${host}" }
                                steps {
                                    dir ('peterlavalle.sbt/') {
                                        // combining these seemed to launch the SBT server which makes Jenkins hang
                                            sh 'java -Dsbt.log.noformat=true -jar ./sbt-launch.jar clean'
                                            sh 'java -Dsbt.log.noformat=true -jar ./sbt-launch.jar test'
                                            sh 'java -Dsbt.log.noformat=true -jar ./sbt-launch.jar publish'
                                    }

                                    ['cgc3.gradle/', 'kanobi.sbt/'].each {
                                        gradle ->
                                            dir (path) {
                                                sh 'chmod +=rwx ./gradlew'
                                                sh './gradlew --stacktrace --console=plain clean'
                                                sh './gradlew --stacktrace --console=plain check'
                                                sh './gradlew --stacktrace --console=plain publish'
                                            }
                                    }
                                    dir ("coffeeskript.cgc/") {
                                        sh 'chmod +=rwx ./gradlew'
                                        sh './gradlew --stacktrace --console=plain check'
                                    }
                                }
                            }
                    }
                }
            }
        }
    }
}

... и Дженкинс говорит: «Только здесь!» или что-то подобное.

...
...
...
Running in Durability level: MAX_SURVIVABILITY
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 47: Expected a stage @ line 47, column 11.
                         ['mac-amd64', 'linux-armv8', 'linux-amd64'].each {
                         ^

WorkflowScript: 44: Expected one of "steps", "stages", or "parallel" for stage "checks" @ line 44, column 4.
                stage("checks") {
            ^
...
...
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...