Дженкинс не может найти определенную функцию? - PullRequest
0 голосов
/ 01 января 2019

Я написал это, чтобы проверить идею, которую увидел на JENKINS-44085

def generateStage(String job, String targetVersion,
                  String rootVersion, Integer sleepTime=0) {
    return {
        stage("Deploying: ${job}") {
            sleep sleepTime
            println "Job: $job"
        }
    }
}

def deployProcs(targetVersion, rootVersion) {
    script {
        int sleepTime = 0
        def procs = ["proc-proc", "proc-proc-high"]
        def parallelStagesMap = procs.collectEntries {
            ["${it}" : generateStage(it, targetVersion, rootVersion, sleepTime)]
            sleepTime += 5
        }
        timestamps {
            parallel parallelStagesMap
        }
    }
}

node('linux') {
  deployProcs(10, 10)
}

Но я получаю

java.lang.NoSuchMethodError: No such DSL method 'generateStage' found among steps.

Чего мне не хватает?

1 Ответ

0 голосов
/ 01 января 2019

Вы звоните deployProcs(10, 10), где оба параметра имеют тип Integer.При вызове generateStage используются те же целочисленные параметры, параметры которых набираются String targetVersion и String rootVersion.

. Исправление: либо вызвать deployProcs('10', '10'), либо изменить def generateStage(String job, Integer targetVersion, Integer rootVersion, Integer sleepTime=0), либо удалить типы изgenerateStage Параметры функции.

...