Как создать несколько заданий Jenkins из конвейера, используя список имен заданий - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь вызвать набор существующих заданий Jenkins в конвейерном задании.У меня есть список всех имен вакансий.Я пытаюсь перебрать имена заданий и построить каждое задание, но получаю сообщение об ошибке в конце конвейера, даже если задания успешно запускаются.

Использование Jenkins 2.164.2, конвейер 2.6

Ошибка одинакова, если я использую оба сценария / объявленный конвейер.Задания запускаются параллельно, но я получаю исключение в конце конвейера и сбой задания конвейера. Причина: java.io.NotSerializableException: hudson.model.Hudson

Журналы Jenkins:

[Конвейер] параллельный[Pipeline] {(Отрасль: а)[Pipeline] build (Здание а)Планирование проекта:[Pipeline] {(Отрасль: b)[Pipeline] build (корпус б)Планирование проекта: б[Трубопровод] }Не удалось в филиале б[Трубопровод] }Не удалось в филиале[Трубопровод] }[Pipeline] // скрипт[Трубопровод] }[Pipeline] // этап[Трубопровод] }[Pipeline] // узел[Трубопровод] Конец трубопроводавозникла исключительная ситуация: в поле
com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals в объекте
com.cloudbees.groovy.cps.impl.BlockScopeEnv@409a0d4f ... Причина:
java.io.NotSerializableException: hudson.model.Hudson at
org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:926) ... в java.lang.Thread.run (Thread.java:748)Закончено: ОТКАЗ


@NonCPS
def getBranches(def JobNamesList) {
    def branches = [: ]
    JobNamesList.each() { jobName ->
        branches[jobName] = {
            build job: jobName
        }
    }
    return branches
}

pipeline {
    agent any
    stages {
        stage('Get Services') {
            steps {
                script {                
                jobNames = ['a','b']
                parallel getBranches(jobNames)
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...