Зачем вообще CI

Непрерывная интеграция экономит время: тесты запускаются на каждый push, а не в голове разработчика перед релизом.

Базовый конвейер

  1. Установка зависимостей
  2. Линтер и форматтер
  3. Тесты
  4. Сборка образа
steps:
  - name: install
    run: pip install -r src/requirements.txt
  - name: test
    run: make test

Совет: кэшируйте зависимости, иначе конвейер будет «курить» минуты впустую.

Итоги

Метрика До После
Время сборки 8 мин 3 мин
Ошибок в main 5/нед 1/нед