Непрерывная интеграция и непрерывная доставка для приложения реакции с Jenkins

Я хочу настроить процессы CI и CD для React App для компании, в которой я работаю, используются следующие технологии:

  1. React для внешнего интерфейса
  2. Flask для бэкэнда
  3. Docker
  4. GitHub для управления исходным кодом

В настоящее время мы используем сценарий для создания приложения, а затем развернуть его вручную в AWS S3 ведро, я прочитал какую-то статью и смотрел учебники и почти все они охватывают Java основанный проект и использование Maven как инструмент сборки для упаковки проекта перед его развертыванием.

признателен, если вы могли бы помочь.

1 ответ

Я согласен, что этот вопрос немного широк, но здесь, но, вообще говоря, вы должны иметь другой конвейер CI для вашего внешнего и внутреннего приложений.

Это имеет много последствий, так как это позволит вам:

  • Чтобы использовать разные циклы выпуска для вашего приложения бэкэнда / внешнего интерфейса
  • Сокращенное время сборки

Однако в какой-то момент вы можете выполнить шаг интеграции, чтобы убедиться, что все вместе. Вообще говоря, ваш конвейер должен выглядеть так (это должно выполняться при каждом коммите):

Также убедитесь, что вы выбрали инструмент CI/CD, который вам не мешает и который достаточно гибок (например: GitLab, Jenkins).

  • Построить образ докера
  • Линтер (для обеспечения минимального форматирования и качества кода)
  • Модульное тестирование
  • Покрытие кода (покрытие кода само по себе немного бесполезно, но в сочетании с тем, как оно развивается и применение минимального% может помочь с качеством)
  • Функциональное тестирование (это имеет больше смысла для вашего бэкэнд-стека, если он использует базу данных, например...)
  • Если все прошло, то нажмите на DockerHub
  • Разверните недавно созданный образ в соответствующую среду. Пример объединения для разработки подразумевает развертывание в вашей промежуточной среде
Другие вопросы по тегам