Как запустить сборку на нескольких платформах с использованием конвейера Jenkins?
2 ответа
Я пробовал это двумя способами
def labels = ['hyp-x', 'hyp-z']
def builders = [:]
for (x in labels) {
def label = x builders[label] = {
node(label) {
// build script
}
}
}
parallel builders
Вышеупомянутый код работает, как и ожидалось от Jenkinsfile, но я вижу, что обе сборки запускаются в одной общей работе, а журнал выглядит неуклюже. Итак, я попробовал второй подход, как показано ниже
созданный Jenkinsfile.x
а также Jenkinsfile.z
и каждый файл представляет собой x и z сборку платформы.
Это невозможно в этой форме. Выражение && предназначено для сужения вашего пула узлов для определенных функций. например, я хочу работать на узле, который имеет метки UBUNTU и DOCKER. В отличие от запуска на двух разных узлах с этими метками.
Вы можете использовать параллельный блок, чтобы делать то, что вы хотите. Если вы используете декларативный синтаксис, см. Эту статью https://jenkins.io/blog/2017/09/25/declarative-1/ или здесь для скриптов https://jenkins.io/doc/book/pipeline/jenkinsfile/