У меня нет опыта работы с CI gitlab, но я знаю, что другие CI-системы предоставляют возможность запускать, например, bash сценарии.
Так что я думаю, вы можете сделать следующее:
- Напишите локальный bash скрипт, который извлекает все репозитории (поскольку gitlab может предоставлять секретные ключи, вы можете использовать их для аутентификации на ваших репозиториях gitlab)
- После всех эти репозитории были извлечены, вы можете запустить все свои команды сборки для разных репозиториев
- Поскольку некоторые репозитории работают и зависят друг от друга, вам, возможно, придется добавить команду сборки именно для этого варианта использования, чтобы у вас всегда есть производственное состояние или все, что вам нужно
- После того, как вы извлекли и построили свои репозитории, вы должны запустить свои серверы для своих бэкэндов
- Я полагаю, ваше приложение angular использует какое-то Переменные окружения, чтобы определить серверы для отправки запроса, поэтому вы также должны определить их в вашей команде / скрипте сборки для вашего приложения
- Затем вы должны быть в состоянии выполнить ваши тесты
Лично я считаю, что docker является своего рода передозировкой для этого варианта использования. Возможно, вам следует определить и запустить конвейер, чтобы всегда создавать новое состояние разработки вашего бэкэнда, pu sh файл docker для вашего сервера. Затем вы сможете создать свой тест-конвейер, который сначала запустит docker -контейнер на вашем собственном сервере (поэтому у вас нет «in-pipe-server»). Это должно было запустить все ваши бэкэнды, чтобы ваш тестовый конвейер теперь мог запускать ваши тесты e2e на тех настроенных Бэкэнд-серверах.
Я также советую вам не запускать этот конвейер каждую ночь, но когда состояние разработки одного из этих связанных репозитариев меняется.
Если вам нужна помощь в настройке, свяжитесь со мной.