#continuous-integration #gitlab #pipeline #gitlab-ci-runner #multi-project
#непрерывная интеграция #gitlab #конвейер #gitlab-ci-runner #многопроектные
Вопрос:
На Gitlab-CI у меня есть два проекта, которые работают вместе. Иногда обновляется только проект A, иногда только B и иногда A B (когда релизы связаны). Я хотел бы создать конвейер для каждого проекта, который запускает один проект и запускает другой только при необходимости. Я использовал нисходящий триггер, но я столкнулся с двумя конфликтующими ситуациями:
Когда я нажимаю только на A при выпуске ветки — *, я хочу запустить master на B и наоборот
Когда я нажимаю на A и B, потому что релиз связан с двумя проектами, он запускает конвейер A, затем B, затем B запускает A, затем A запускает B, и это навсегда. (Я не тестировал этот случай, но теоретически это произойдет)
Есть идеи, как решить эту ситуацию?
Использование chatops со Slack — это решение, которое можно рассмотреть.
Ответ №1:
Я нашел ответ, просто поиграв с CI_PIPELINE_SOURCE
в нисходящем конвейере. Если $CI_PIPELINE_SOURCE == «конвейер», не выполняйте эту задачу.