У меня есть многоотраслевое задание для запуска любой ветки с Jenkinsfile.
У меня есть несколько вариантов, о которых я могу подумать, хочу ли я удалить ветку из списка заданий, выполняемых для многоотраслевого конвейера.
- Я могу удалить ветку
- Я могу удалить Jenkinsfile в этой ветке
Второе решение хорошо, за исключением того, что мне нужно зафиксировать и отправить это в репозиторий git для моей ветки, и если эта ветка объединяется с другой веткой, это сносит Jenkinsfile.
Каков наилучший способ отключить только некоторые ветви многоотраслевого конвейера?
jenkins-pipeline
Дэвид Уэст
источник
источник
when { anyOf { branch 'master'; branch 'release/**' } }
на любом этапе (в декларативном) илиif (env.BRANCH_NAME == 'master' || (env.BRANCH_NAME).startsWith('release/')) {}
в сценарии конвейера (почти в любом месте). Для первого варианта есть больше доступных в jenkins.io/doc/book/pipeline/syntax/#when . В любом случае, лучший способ - настроить это в плагине многоотраслевого конвейера, как указано в ответе.Просто удалите Jenkinsfile на ветке (ветках), для которой вы не хотите иметь соответствующие задания на ветке. Это приведет к удалению задания ветвления (если, конечно, вы правильно установили «Стратегию для осиротевших предметов»).
С точки зрения проекта многоотраслевого конвейера Jenkins это имеет тот же эффект, что и удаление ветви. Это потому, что он просто сканирует ветки, которые содержат Jenkinsfiles в качестве критерия того, когда создавать (или удалять) соответствующее задание ветки.
Верните коммит, чтобы восстановить Jenkinsfile, если / когда вам снова понадобится ветвление.
источник