Что такое CI/CD — и почему зелёная галочка ничего не обещает

Смотри, забавная штука: пустой репозиторий с настроенным CI зеленеет всегда. Проверок нет — значит, ломаться нечему. Галочка стоит, а код может быть каким угодно.
Это и есть главное, что стоит понять про CI/CD с самого начала. Зелёная галочка не говорит «код рабочий». Она говорит: «прошли ровно те проверки, которые ты сам написал». Ни одной больше.
Разберёмся, что это за робот, зачем он тебе — и что в него класть, чтобы галочка начала что-то значить.
Что такое CI/CD простыми словами
CI/CD — это робот, который живёт рядом с твоим репозиторием. Он просыпается на каждый твой коммит и делает то, что ты и так делаешь руками: ставит зависимости, запускает тесты, собирает проект.
Разница одна: он делает это каждый раз. Не когда вспомнил. Не когда «ну, тут я мелочь поправил, проверять незачем».
Именно та мелочь обычно и ломает.
Робот не умнее тебя. Он просто не устаёт и не ленится. Всё, что он знает, ты написал ему сам — обычно это файл с инструкциями внутри репозитория.
Как это работает: коммит → робот просыпается
Схема простая, и она одинаковая почти везде:
- Ты пушишь коммит или открываешь пул-реквест.
- Сервис видит новый коммит и поднимает чистую машину с нуля.
- На ней он выполняет твой список шагов: установить, проверить, собрать, протестировать.
- Если хоть один шаг упал — красный крестик. Все прошли — зелёная галочка.
Важное слово тут — чистая. Робот каждый раз начинает с пустой машины, где нет ничего твоего локального. Ни твоих скрытых файлов, ни пакета, который ты когда-то поставил и забыл.
Поэтому CI ловит классику: «у меня работает, а у всех остальных нет». У тебя работает, потому что на твоём ноуте что-то есть. У робота этого нет — и он честно падает.
CI и CD — это две разные буквы
Их пишут через слэш, и новички думают, что это одно слово. Это две отдельные привычки.
CI — Continuous Integration, непрерывная проверка. Каждое изменение автоматически проверяется. Тесты, линтер, сборка. Задача CI — не пустить поломку дальше твоего ноутбука.
CD — Continuous Delivery/Deployment, непрерывная доставка. Если проверки прошли, робот сам раскатывает новую версию в бой. Задача CD — убрать ручной ритуал деплоя.
Начинать всегда стоит с CI. CD без CI — это робот, который очень быстро и очень надёжно выкатывает в прод сломанный код.
Зачем это тебе, если ты работаешь один
Слово «интеграция» досталось нам от больших команд: там CI мирит код десяти человек. Ты один, мирить не с кем — и кажется, что вся штука не про тебя.
Она про тебя по трём причинам.
Ты забудешь прогнать тесты. Не потому что плохой, а потому что живой. В пятницу вечером «поправил один текст» проверять не хочется. Робот не спрашивает, хочется ли ему.
Ты пишешь код вместе с ИИ. Модель выдаёт правдоподобный код быстрее, чем ты успеваешь его читать. CI — это сетка, которая ловит правдоподобное, но нерабочее, ещё до продакшена. Про то, почему это происходит, есть отдельный разбор — почему код от ИИ с багами.
Это почти бесплатно. У публичных репозиториев на GitHub Actions минуты не считают вообще. У приватных есть бесплатный лимит — порядка 2000 минут в месяц на бесплатном тарифе, дальше цена измеряется долями цента за минуту. Твой пет-проект в этот лимит не упрётся.
Что положить в первый пайплайн
Не пытайся сразу построить конвейер мечты. Первый пайплайн — это три шага, и он честнее, чем звучит:
- Установить зависимости. Уже полезно: ловит сломанный лок-файл и пакет, который есть только у тебя.
- Прогнать линтер. Секунды работы, ловит опечатки и мёртвый импорт.
- Прогнать тесты. Даже если тест ровно один.
Вот тут и всплывает та самая ловушка из начала. Пока в репозитории нет ни одного теста, шаг 3 проходит мгновенно и всегда успешно. Галочка зелёная. Смысла — ноль.
Поэтому у CI есть простое правило: галочка стоит ровно столько, сколько стоят твои проверки. Хочешь, чтобы она что-то значила — добавляй проверки, а не бейджики. Написать первые тесты можно вместе с моделью: как писать тесты с помощью ИИ.
И запомни ещё одно: красный CI — это не позор, а сэкономленный вечер. Робот упал вместо твоих пользователей.
Чем CI/CD отличается от деплоя?
Деплой — это одно действие: выложить новую версию. CI/CD — это привычка, в которой деплой стоит последним и только после проверок. Можно деплоить без CI/CD (руками) и можно иметь CI без деплоя (только проверки).
Нужен ли CI/CD для маленького пет-проекта?
CI — да, минимальный: три шага и десять минут настройки. CD — не спеши. Пока ты один и релизишь раз в неделю, ручной деплой не проблема. Автоматизируй то, что делаешь часто и скучаешь, а не то, что модно.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





