У меня есть настройка конвейера Concourse CI, которая логически зависит от двух отдельных ресурсов Git.
Для определенных требований c, скажем, при выпуске версии m.n.o
конвейер должен проверить оба проекта одновременно. Важно отметить, что он должен ссылаться на один и тот же release/m.n.o
в обеих ветвях. Кроме того, я бы хотел, чтобы мой конвейер запускался обновлением обоих проектов A и B, и, конечно же, должно выполняться требование соответствия имен веток, например, если я обновляю project-a/release/1.2.3
, я хочу, чтобы Concourse CI проверял project-b/release/1.2.3
, а не любой другой. Важно отметить, что в обоих проектах может быть более одной ветки release/m.n.o
, т.е. можно от sh до project-a/release/1.2.3
, чтобы оба A и B v.1.2.3 попали в CI, а затем pu sh на project-b/release/2.3.4
, чтобы обе версии A и B v.2.3.4 были созданы CI.
resource_types:
- name: git-multibranch
type: docker-image
source:
repository: cfcommunity/git-multibranch-resource
resources:
- name: code
type: git-multibranch
source:
uri: git@bitbucket.org:project-a.git
branches: 'release/.*'
- name: config
type: git-multibranch
source:
uri: git@bitbucket.org:project-b.git
branches: 'release/.*'
jobs:
- name: build
plan:
- get: code
version: latest
trigger: true
- get: config
version: every
trigger: true
# ... more stuff
Единственное стабильное рабочее решение, которое я нашел до сих пор, - это сохранение имени ветки в качестве переменной и ее переключение каждый раз, когда мне нужно обрабатывать выпуск 1.2.3 или 2.3.4 с помощью fly set-pipeline
(или с помощью Vault, но это еще сложнее).
В качестве альтернативы я могу создать два (3, 4, N) конвейера, по одному для каждой имеющейся у меня версии выпуска. Однако я считаю, что оба варианта пока что едва удовлетворительны по сравнению с тем, что может быть достигнуто с помощью других движков CI / CD.
В целом, мне кажется, что мне не хватает какой-то базовой c концепции Concourse, которую можно использовать здесь для достижения простой цели - проверить два репозитория с ветвью с одинаковыми названиями, поэтому я был бы очень признателен за любой помощь.