На мой взгляд, у вас есть 2 варианта - у вас может быть одно задание / конфигурация CI, в котором можно развернуть одну / несколько служб (если все службы одинаковы).Или, если каждый сервис отличается от вас, вам нужно отдельное задание / конфигурация для каждого.Если это где-то посередине, это вопрос о том, хотите ли вы одну работу, которая имеет кучу операторов if / then, например, «если repo = user, то сделайте эту особую вещь».До сих пор подход if / then работал хорошо для меня, но в конечном итоге было слишком много особых случаев, когда было проще просто использовать уникальную конфигурацию для каждой службы.
Я решил эту проблему«трудно сделать 1 строчку в 30 репозиториях git», имея суперпользователя git.По сути, обычные пользователи могут объединяться только с помощью PR, но суперпользователь может фиксировать напрямую.Поскольку я меняю только такие вещи, как конфигурационные файлы, редко возникают конфликты слияния или неработающие тестовые случаи, поэтому он работает.Вот пример кода:
#!/usr/bin/env bash
for dir in /temp/*/
do
cd $dir
git pull
sed 's/Nick/John/g' report.txt > report_new.txt
git commit -m "CI change" && git push
cd ..
done