Непрерывная интеграция и непрерывная доставка для приложения реакции с Jenkins
Я хочу настроить процессы CI и CD для React App
для компании, в которой я работаю, используются следующие технологии:
React
для внешнего интерфейсаFlask
для бэкэндаDocker
GitHub
для управления исходным кодом
В настоящее время мы используем сценарий для создания приложения, а затем развернуть его вручную в AWS S3
ведро, я прочитал какую-то статью и смотрел учебники и почти все они охватывают Java
основанный проект и использование Maven
как инструмент сборки для упаковки проекта перед его развертыванием.
признателен, если вы могли бы помочь.
1 ответ
Я согласен, что этот вопрос немного широк, но здесь, но, вообще говоря, вы должны иметь другой конвейер CI для вашего внешнего и внутреннего приложений.
Это имеет много последствий, так как это позволит вам:
- Чтобы использовать разные циклы выпуска для вашего приложения бэкэнда / внешнего интерфейса
- Сокращенное время сборки
Однако в какой-то момент вы можете выполнить шаг интеграции, чтобы убедиться, что все вместе. Вообще говоря, ваш конвейер должен выглядеть так (это должно выполняться при каждом коммите):
Также убедитесь, что вы выбрали инструмент CI/CD, который вам не мешает и который достаточно гибок (например: GitLab, Jenkins).
- Построить образ докера
- Линтер (для обеспечения минимального форматирования и качества кода)
- Модульное тестирование
- Покрытие кода (покрытие кода само по себе немного бесполезно, но в сочетании с тем, как оно развивается и применение минимального% может помочь с качеством)
- Функциональное тестирование (это имеет больше смысла для вашего бэкэнд-стека, если он использует базу данных, например...)
- Если все прошло, то нажмите на DockerHub
- Разверните недавно созданный образ в соответствующую среду. Пример объединения для разработки подразумевает развертывание в вашей промежуточной среде