У меня есть конвейер, похожий на приведенный ниже.
stage('Build, run, report') {
for (int i = 0; i < components.size(); ++i){
builds[i] = {
stage('Build') {
build job: 'Build', parameters: [string(name: 'Component', value: component)]
}
stage('Run') {
build job: 'Run', parameters: [string(name: 'Component', value: component)]
}
stage('Reporting') {
'Reporting', parameters: [string(name: 'Component', value: component)]
}
}
}
parallel builds
Здесь «компоненты» - это список из параметра конвейера.Я хочу запустить тот же поток в соответствии с номером компонента.
У меня есть только один подчиненный узел с 4 исполнителями.Если у меня будет 10 компонентов, 4 начнут работать немедленно, а остальные 6 будут поставлены в очередь и будут ожидать освобождения исполнителя.
Я могу получить даже более 50 компонентов в списке, и зоманирование в очереди выглядит не очень хорошо, и я не думаю, что тогда это будет правильным подходом (я подозреваю, что будет пределсборки также могут быть в очереди.)
Есть ли у нас способ приостановить параллельный запуск до тех пор, пока исполнители / ведомые не станут доступными, и возобновить их по одному, когда исполняющий / ведомый освобождается?
Или у нас есть лучший способ справиться с этим, чем параллельный запуск в конвейере?