На данный момент мы добавляем .gitlab-ci.yml в каждый проект. На данный момент у нас более 50 проектов, и каждый раз, когда что-то меняется в .gitlab-ci.yml, команде приходится менять структуру во всех проектах. Возможно ли иметь один общий .gitlab-ci.yml?
Попытки
Нет, это невозможно. Это противоречит идее о том, почему существует этот метод, потому что что если вы добавите репозиторий / проект git, которому нужен совершенно другой файл yml?
Что вы могли бы сделать (как вы упомянули), так это запустить сценарий, который загружается во время .gitlab-ci.yml
запустить процесс. Что-то вроде этого:
stages:
- prep
- run
get_script:
stage: prep
script:
- wget http://my_local_script.lan/run_suite.sh -O /tmp/run_suite.sh
run_script:
stage: run
script:
- bash /tmp/run_suite.sh
Установите это как сценарий для каждого проекта, а затем все, что вам нужно сделать, это обновить run_suite.sh один раз, и все новые проекты будут его использовать.
Боюсь, что нет лучшего способа, чем этот.
Если мне нужна глобальная конфигурация CI, я бы использовал системные хуки.
Конечно, вы потеряете некоторые (то есть все) классные функции Gitlab CI.