Дженкинс многоотраслевой конвейер и спецификация вышестоящих проектов
В настоящее время мы генерируем множество заданий 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: запуск многоотраслевого конвейера при изменении восходящего потока)