Файл Gitlab .gitlab-ci.yml отличается по веткам - PullRequest
0 голосов
/ 30 августа 2018

У меня есть ситуация, когда у нас есть .gitlab-ci.yml в master, который отличается от brach 'development', проблема в том, что у нас много репозиториев с большим количеством веток.

Я хочу внести изменения в .gitlab-ci.yml, но хочу убедиться, что все ветви используют один и тот же .gitlab-ci.yml. Я знаю, что Gitlab по своему дизайну оставит вам возможность иметь разные CI CD для ваших веток, потому что ваши конвейеры могут отличаться.

Один из способов сделать это - получить все репо со всеми ветками и просто скопировать один и тот же .gitlab-ci.yml во все репо и ветки.

Вы знаете какой-нибудь лучший способ сделать это?

Ответы [ 3 ]

0 голосов
/ 02 сентября 2018

Если вы используете корпоративную версию, вы можете использовать ключевое слово include .

Если вы используете версию для сообщества, лучший вариант, о котором я могу подумать, это иметь работу с check-yaml. Это в основном работает git diff master -- .gitlab-ci.yml [1]. Если .gitlab.yml в ветви и в мастере отличаются, задание не будет выполнено, что заставит вас обновить свою ветку. Хотя это не будет автоматически синхронизировать ваши конвейеры, переадресация не останется незамеченной.

[1]: вам может потребоваться запустить git fetch master, в зависимости от вашей стратегии git .

0 голосов
/ 03 сентября 2018

Я знаю, что .gitlab-ci.yml может отличаться в ветвях, потому что ваш Prod CI может отличаться от 'Dev / Test' в других ваших ветвях, поэтому нормально иметь разные файлы .gitlab-ci.yml в разных ветки, так что наша команда разработчиков объединяет мастера со своими ветками и начинает с них изменения.

Идея в том, что когда вы хотите внести изменения, давайте скажем «глобальные» изменения, но вопрос в том, как вы будете подходить.

0 голосов
/ 31 августа 2018

Возможно, вы могли бы использовать подмодули git и изменить папку по умолчанию вашего .gitlab-ci.yml.

...