Сборка триггера Jenkins зависит от параметров сборки

У меня есть конвейер Дженкинса, настроенный следующим образом, где сборка A - это начало конвейера, а по завершении триггеры сборки B и так далее (см. Ниже). Пока я реализовал сборки A, B и C. Я использовал Jenkins Плагин параметризованного триггера как действие после сборки для запуска моих сборок.

Могу ли я это сделать после завершения сборки B, в зависимости от того, какие параметры сборка была запущена с помощью вилки сборки после сборки B, как показано ниже. Build C и Build D - это сборки развертывания, которые будут развертываться в разных средах. Таким образом, если разработка была передана в качестве параметра для сборки A, тогда она вызовет сборку C, иначе, если тест будет передан в качестве параметра, он вызовет сборку D после сборки B.

Смотрел вокруг и не видел, как это сделать, у кого-нибудь есть идеи

Спасибо

Parameterised Build A eg: Params a=1 b=2
              |
              |
Parameterise Build B (uses params from build A)
              |
              |
    ------------------------
    |                       |
    |                       |


Build C                   Build D

person user1107753    schedule 11.02.2016    source источник
comment
Вы можете обернуть вызовы плагина параметризованного триггера Conditional BuildStep Plugin который, в частности, может сравнивать значения параметров с произвольной строкой.   -  person izzekil    schedule 11.02.2016
comment
Попробуйте плагин BuildFlow. wiki.jenkins-ci.org/display/JENKINS/Build+Flow+ Плагин   -  person Jayan    schedule 11.02.2016


Ответы (2)


Вы можете использовать Pipeline Plugin (ранее называвшийся рабочим процессом), чтобы настроить это довольно легко.

Создайте новое задание конвейера, отметьте параметр «Эта сборка параметризована» и создайте два требуемых строковых параметра (например, server и foo), затем определите сценарий конвейера следующим образом:

// Pass the parameters used to start this pipeline into the first two jobs
def p = [
  [$class: 'StringParameterValue', name: 'server', value: server],
  [$class: 'StringParameterValue', name: 'foo', value: foo]
]

// Build the first job and wait for success
build job: 'one', parameters: p

// Build the second job and wait for success
build job: 'two', parameters: p

// Decide which job to build next, and then start it
def deployJob = (server == 'develop') ? 'three' : 'four'
build deployJob

Это запустит ваши первые два задания с одинаковыми параметрами (которые я также назвал server и foo в этом примере), а затем явно запустит сборку только одного другого задания, в зависимости от того, какое значение параметра server было, когда запуск трубопровода.

person Christopher Orr    schedule 14.02.2016

Я сделал это с помощью гибкого плагина издателя и с помощью выражения regualr в имени параметра, чтобы решить, какую сборку запускать. Похоже на условный плагин

person user1107753    schedule 12.02.2016