Если один и тот же конвейер строит все ветви, то либо вы не используете ресурс git, либо используете модифицированный ресурс git, который поддерживает несколько ветвей.
Я предполагаю, что то, что вы называете "шагами" 1... 5 заданий конкурса.
Я вижу два варианта.
- Вариант 1. Простой, но грязный / вводящий в заблуждение.
В началеиз шагов 4 и 5 проверьте ветвь git.Если не мастер, немедленно верните успех.Конвейер будет оставаться зеленым, а задания публикации и развертывания будут выглядеть так, как будто они выполнялись, хотя на самом деле они ничего не делали.
- Вариант 2. Немного более сложный, но правильный путь.
Используйте два трубопровода.Один конвейер для всех филиалов, кроме основного.Этот конвейер будет содержать только шаги 1 ... 3. Второй конвейер будет отслеживать главную ветвь и будет иметь все шаги 1 ... 5.
Теперь вопрос заключается в том, как управлять этими двумя конвейерами в DRY.мода (без дублирования кода, нет возможности, чтобы конвейеры отходили друг от друга)?
Ответ заключается в использовании инструмента слияния YAML, например https://github.com/geofffranks/spruce. В README упоминается BOSH, но этоПолностью универсальный инструмент слияния YAML.
Последняя часть - как оставаться СУХИМЫМ и в то же время указывать разные ветви.Это можно получить с помощью https://concourse -ci.org / setting-pipelines.html # pipeline-vars .