Текущая ситуация : В настоящее время в Jenkins 1 у меня есть JobA и JobB, выполняющие тесты с использованием определенного файла JobAFile и JobBFile соответственно. Имена заданий хранятся в массиве и передаются как в триггере downstreamParameterized.
Сейчас я создаю динамически созданные файлы JobAFilePt1, JobBFilePt1, JobBFilePt2 и т. Д. Для JobA и JobB соответственно. Это требует от меня использовать forMatchingFiles в параметре Factory. Тем не менее, JobA имеет различные задания внутри, такие как JobASubJob1, JobASubJob2, который портит сопоставление с шаблоном forMathcingFiles.
Чтобы исправить это, я попытался поставить что-то вроде:
JobAJobs.each { String subJob->
steps {
downstreamParameterized {
trigger('subJob') {
paramterFactories {
forMatchingFiles("somePattern${subJob}")
}
}
}
}
Проблема : Но это просто заставляет его работать последовательно. Как мне получить шаги для параллельного запуска? Или, по крайней мере, не блокировать его, пока не будет выполнена сборка для триггера? Я посмотрел онлайн и нашел только решения для декларативных конвейеров и скриптовых конвейеров, а не Job DSL.
В качестве другого альтернативного возможного решения: Я смотрю только на то, чтобы сделать это сейчас Phase, и каждый phaseJob создается динамически. Однако, поскольку мне нужно передать «n» количество файлов в качестве параметров для определенного файла (который можно найти с помощью шаблона), я не уверен, как подойти к этому концу. Как мне динамически дать ему параметры?
phase("Run jobs") {
JobAJobs.each { String subJob -> {
phaseJob("subJob") {
parameters {
<someParameterType>
}
}
}
}
Вместо someParameterType я хотел бы попытаться передать параметры файла, но не уверен, как к этому подойти. Есть предложения?