Дженкинс многоотраслевой конвейер и спецификация вышестоящих проектов

В настоящее время мы генерируем множество заданий Jenkins для каждой ветви Git, используя задание Jenkins DSL; плагин для многоотраслевого конвейера выглядит как интересный способ потенциально получить первоклассную поддержку генерации заданий с помощью Jenkinsfiles и уменьшить количество поддерживаемых Job DSL.

Например, у нас есть libwidget-server и widget-server, разрабатывающие проекты филиалов. Когда сборка libwidget-server завершается, запускается задание widget-server (для ветви разработки). Это относится и к другим веткам.

Это использует Build after other projects are built запускать после завершения восходящей сборки (например, libwidget-server вызывает сборку widget-server).

Кажется, что плагин многоотраслевого конвейера не хватает Build after other projects are built установка - как бы мы достигли вышеупомянутого в многоотраслевом конвейере?

2 ответа

Решение

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

Предположим, у вас есть папка с двумя заданиями, оба из которых являются многоотраслевыми конвейерными заданиями: jobA а также jobB; jobB должен срабатывать после jobA"s master,

Вы можете добавить этот фрагмент кода в jobBДженкинсфайл:

properties([
  pipelineTriggers([
    upstream(
      threshold: 'SUCCESS',
      upstreamProjects: '../jobA/master'
    )
  ])
])

(Имейте ввиду, что любая ветвь jobB здесь сработает после jobAХозяин!)

В настоящее время я пытаюсь заставить это работать для нашего развертывания. Самое близкое, что у меня есть, это добавление следующего к нижестоящему Jenkinsfile;

properties([
    pipelineTriggers([
        triggers: [
            [
                $class: 'jenkins.triggers.ReverseBuildTrigger',
                upstreamProjects: "some_project", result: hudson.model.Result.SUCCESS
            ]
        ]
    ]),
])

Это, по крайней мере, заставляет Дженкинса признать, что он должен запускаться, когда 'some_project' get собран, т.е. он появляется на странице "Просмотр конфигурации".

Однако до сих пор сборки some_project по-прежнему не запускают последующий проект, как ожидалось.

При этом, может быть, вам повезет больше. Дайте мне знать, если это работает для вас.

(Кто-то еще задавал подобный вопрос здесь -> Jenkins: запуск многоотраслевого конвейера при изменении восходящего потока)

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