У меня есть моно-репо с несколькими проектами (не мой выбор дизайна).
Каждый проект имеет настройку .gitlab-ci.yml
для запуска конвейера при изменении файла версии. Это хорошо, потому что пользователь может зарегистрироваться на stage
или master
(для оперативного исправления), а сборка создается и развертывается в тестовой среде.
Проблема заключается в том, что пользователь делает объединение от master
до stage
и фиксация обратно к stage
(чтобы исправить любые исправления). Это заставляет ВСЕ трубопроводы работать; даже для проектов, которые не имеют фактических изменений содержимого.
Как разрешить конвейеру запускаться с master
и / или stage
, но ТОЛЬКО при изменении содержимого файла версии? Например, когда пользователь меняет номер версии.
Вот пример .gitlab-ci.yml
(у меня их 5, по 1 на каждый проект в моно-репо)
#
# BUILD-AND-TEST - initial build
#
my-project-build-and-test:
stage: build-and-test
script:
- cd $MY_PROJECT_DIR
- dotnet restore
- dotnet build
only:
changes:
- "MyProject/.gitlab-ci.VERSION.yml"
# no needs: here because this is the first step
#
# PUBLISH
#
my-project-publish:
stage: publish
script:
- cd $MY_PROJECT_DIR
- dotnet publish --output $MY_PROJECT_OUTPUT_PATH --configuration Release
only:
changes:
- "MyProject/.gitlab-ci.VERSION.yml"
needs:
- my-project-build-and-test
... и так далее ...
Я все еще новичок в git, GitLab и CI / конвейерах. Любая помощь будет оценена! (Я мало что могу сказать об изменении моно-репо)