~/VibeHandbook
PDF бесплатно

Глава 15 · 07

Основы CI: сделайте проверки автоматическими

(Continuous Integration) — это робот, который запускает ваши проверки каждый раз, когда вы пушите код, чтобы вы не могли забыть их запустить. На большинстве платформ это один файл. Вот минимальный пример GitHub Actions:

# .github/workflows/ci.yml
name: CI
on: [push, pull_request]

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm run lint
      - run: npm run typecheck
      - run: npm test

Теперь каждый пуш автоматически проходит линтинг, проверку типов и тестирование. Если что-то падает, вы видите красную отметку ещё до того, как код можно будет смержить. Вы даже можете попросить AI написать этот файл под ваш стек — «Добавь воркфлоу GitHub Actions, который запускает наш линтинг, проверку типов и тесты на каждый ».

Когда защита ветки включена, красная проверка не просто предупреждает вас — она физически блокирует кнопку мержа, пока сборка снова не станет зелёной:

   pull request
        │
        ▼
   ┌──────────────┐      всё прошло      ┌───────────────┐
   │ CI runs      │ ───── ✓ green ─────▶ │ слияние можно │ ──▶ main
   │ lint · types │                      └───────────────┘
   │ · tests      │      есть провал
   └──────────────┘ ───── ✗ red ──────▶  ┌───────────────┐
                                          │ слияние стоп  │  🔒
                                          └───────────────┘
                                          исправь, пуш, заново

Смысл CI — не в автоматизации самой по себе, а в том, что она переносит проверки из вашей памяти в конвейер, где их нельзя пропустить уставшей ночью. Когда базовое заработает зелёным, стоит сделать два улучшения один раз. Первое: сделайте проверки обязательным статусом на основной ветке («правило защиты ветки» на GitHub), чтобы красная сборка буквально блокировала кнопку мержа, а не просто показывала предупреждение, которое можно проигнорировать. Второе: когда CI падает, вставьте лог падения прямо AI: «CI упал на этом прогоне, вот вывод — продиагностируй и исправь». Лог — это точный, сгенерированный машиной баг-репорт, а это ровно тот вид входных данных, с которым AI работает лучше всего.

Хотите офлайн-версию?

Скачайте всю книгу в PDF или EPUB — бесплатно.