Я согласен с тем, что этот вопрос немного широк, но здесь, в общем, вы должны иметь другой конвейер CI для вашего внешнего и внутреннего приложений.
Последствия этого много, так как это позволит вам:
- Чтобы использовать разные циклы выпуска для вашего бэкэнда / внешнего интерфейса
- Сокращенное время сборки
Однако в какой-то момент вы можете выполнить шаг интеграции, чтобы сделатьуверен, что все держится вместе.Вообще говоря, ваш конвейер должен выглядеть так (это должно выполняться при каждом коммите):
Также убедитесь, что вы выбрали инструмент CI / CD, который вам не мешает и который достаточно гибок (например: GitLab, Jenkins).
- Создание образа докера
- Linter (для обеспечения минимального форматирования и качества кода)
- Модульное тестирование
- Покрытие кода (Покрытие кодаperse, это немного бесполезно, но в сочетании с тем, как оно развивается и применение минимального% может помочь с качеством)
- Функциональное тестирование (это имеет больше смысла для вашего бэкэнд-стека, если он использует базу данных, например ...)
- Если все пройдет, нажмите на DockerHub
- Разверните недавно созданный образ в соответствующую среду.Пример объединения для разработки подразумевает развертывание в вашей промежуточной среде