Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 1.56 KB

CI.md

File metadata and controls

20 lines (16 loc) · 1.56 KB

Continuous integration

Выполняет две задачи:

  • Проверка. Тестит систему для каждого pull request'a, запускает линтеры для кода.
  • Сборка. Собирает систему для dev и prod после каждого пуша в мастер-ветку.

Как устроен CI

CI делаем через drone. Синтаксис его конфига - надмножество конфигов docker-compose.

  • При pull request сначала билдим контейнеры, потом запускаем на них тесты и линтеры.
  • При push в мастер-ветку тоже билдим контейнеры, запускаем тесты. В финале пушим вновь созданные образы (docker images) в репозиторий. Docker compose фетчит эти образы на локальную машину когда мы начинаем разработку (или деплой на прод). Мы лишь следуем инструкциям из Makefile.

Тестирование

Образ питон-приложения для продакшена переиспользует образ для разработки. Поэтому запускаем только один набор тестов для образа разработки.

Для интеграционных тестов фронтенда нужна собранная фронт-статика: css, js, images. Поэтому билдим npm