Как запустить сборку на нескольких платформах с использованием конвейера Jenkins?

метка узла

Я хочу запустить задание Дженкинса на узлах сборки "hyp-z" и "hyp-x". Я попытался написать это так, но получаю: "Нет узлов с меткой" hyp-x&&hyp-z ""

  node ('hyp-z&&hyp-x') {
   // write something here
  }

Какую ошибку я делаю и каков точный рабочий формат?

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/

Другие вопросы по тегам