Плагин Jenkins pipeline как запускать параллельные задачи

#jenkins #jenkins-pipeline

#дженкинс #дженкинс-трубопровод #Дженкинс #дженкинс-конвейер

Вопрос:

Плагин Jenkins pipeline как запускать параллельные задачи

Я новичок в jenkins, я хочу запустить несколько задач параллельно на доступных подчиненных узлах jenkins, используя плагин pipeline.

Я установил плагин pipeline и добавил ниже в раздел встроенного скрипта pipeline.

 grovvy script : 
    parallel firstBranch: {
        node('master'){
            echo 'firstBranch'
        }
    }, 
    secondBranch: {
        node('slave1'){
            echo 'secondBranch'
        }
    }
  

ПРИМЕЧАНИЕ: master и slave1 — это мои узлы

Что такое First branchи secondBranch в идеале????

Вывод на консоль:

Запущен анонимным пользователем [Конвейер] параллельный [Конвейер] [Первая ветвь] { (Ветвь: первая ветвь) [Конвейер] [Вторая ветвь] { (Ветвь: вторая ветвь) [Конвейер] [Первая ветвь] узел [firstBranch], запущенный на главном в / scratch / gnithyan /.hudson/workspace /pipeline_test
[Конвейер] [Вторая ветвь] узел
[Конвейер] [Вторая ветвь] // узел
[Конвейер] [Вторая ветвь] }
[Вторая ветвь] Произошел сбой во второй ветви
[Конвейер] [Первая ветвь] {
[Конвейер] [Первая ветвь] echo
[ Первая ветвь] Первая ветвь
[Трубопровод] [Первая ветвь] }
[Трубопровод] [Первая ветвь] // узел
[Трубопровод] [Первая ветвь] }
[Трубопровод] // параллельный
[Трубопровод] Конец трубопровода

java.lang.Исключение IllegalStateException: не удается начать запись журналов в готовый узел org.jenkinsci.plugins.рабочий процесс.cps.узлы.StepStartNode[id=8] в org.jenkinsci.plugins.рабочий процесс.поддержка.действия.LogActionImpl.(LogActionImpl.java:110) в org.jenkinsci.plugins.рабочий процесс.поддержка.действия.LogActionImpl.stream(LogActionImpl.java:81) в org.jenkinsci.plugins.рабочий процесс.поддержка.DefaultStepContext.get(DefaultStepContext.java:73) в org.jenkinsci.plugins.workflow.steps.StepDescriptor.checkContextAvailability (StepDescriptor.java:252) в org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:179) в org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126) в org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:108) на groovy.lang.GroovyObject$invokeMethod$0.вызов (неизвестный источник) в org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)

Комментарии:

1. пожалуйста, отформатируйте код (удалите HTML-содержимое)

2. Я только начинаю получать это в ранее работающем скрипте конвейера с последней версией Jenkins. Еще не понял, что означает дамп стека 🙁

3. В приведенном ниже скрипте 1. что означают firstBranch и secondBranch??? 2. всегда ли master и slave1 должны быть именами доступных узлов на jenkins?? пресмыкающийся скрипт: параллельная первая ветвь: { узел (‘master’){ echo ‘firstBranch’ }}, вторая ветвь: { узел (‘slave1’){ echo ‘secondBranch’ } }

Ответ №1:

У меня такая же проблема. Возможно, я нашел зависящий плагин:https://wiki.jenkins-ci.org/display/JENKINS/Pipeline Supporting APIs Plugin Смотрите Примечание к выпуску для версии 2.10 Регрессии в обработке журнала с определенными шагами внутри parallel в 2.9.

Да, обновление плагина работает!

Комментарии:

1. Обновление плагина API, поддерживающего конвейер, до версии 2.10 сработало. Спасибо!! Все

2. Да, извините за это.

Ответ №2:

Похоже, это ошибка в pipeline api версии 2.9, которая будет исправлена в версии 2.10 (см. Также Примечания к выпуску https://wiki.jenkins-ci.org/display/JENKINS/Pipeline Supporting APIs Plugin )

Ответ №3:

Для меня это выглядит совершенно правильно. Я определил свою доставку как конвейер, и она работала нормально. Сегодня, после обновления Jenkins с 2.25 до 2.26, я получил ту же ошибку. Понижение версии до 2.25 не помогло, хотя, возможно, потому, что я также обновил плагины : (