Обратите внимание: вопрос основан на старом, теперь называемом "скриптовом" формате конвейера. При использовании «декларативных конвейеров» параллельные блоки могут быть вложены внутри блоков stage (см. Параллельные этапы с Declarative Pipeline 1.2).
Мне интересно, как параллельные шаги должны работать с плагином рабочего процесса / конвейера Jenkins, особенно. как смешивать их с этапами сборки. Я знаю об общей закономерности:
parallel(firstTask: {
// Do some stuff
}, secondTask: {
// Do some other stuff in parallel
})
Однако я хотел бы запустить несколько этапов параллельно (на одном узле, у которого есть несколько исполнителей), поэтому я попытался добавить такие этапы:
stage 'A'
// Do some preparation stuff
parallel(firstTask: {
stage 'B1'
// Do some stuff
}, secondTask: {
stage 'B2'
// Do some other stuff in parallel
})
stage 'C'
// Finalizing stuff
Это не работает должным образом. Задачи «сделать что-то» выполняются параллельно, но параллельные этапы завершаются немедленно и не включают в себя то, что они должны содержать. Как следствие, Stage View не показывает правильный результат, а также не связывает журналы.
Могу ли я строить разные этапы параллельно, или «параллельный» этап предназначен только для использования в рамках одного этапа?