~/VibeHandbook
無料 PDF

15 · 07

CIの基本: チェックを自動化する

(継続的インテグレーション)は、コードをプッシュするたびにチェックを実行してくれるロボットです。だから実行を忘れることができません。たいていのプラットフォームでは、これは1つのファイルで済みます。最小限の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

これで、プッシュのたびに自動でリント、型チェック、テストが走ります。何か失敗すれば、コードがマージされる前に赤いマークが見えます。このファイルを自分のスタック向けに書いてもらうこともできます。「プルリクエストのたびにリント、型チェック、テストを実行するGitHub Actionsのワークフローを追加して」

ブランチ保護をオンにすると、赤いチェックは警告するだけでなく、ビルドが再びグリーンになるまでマージボタンを物理的にロックします:

   pull request
        │
        ▼
   ┌──────────────┐      全て合格        ┌───────────────┐
   │ CI runs      │ ───── ✓ green ─────▶ │ マージ許可    │ ──▶ main
   │ lint · types │                      └───────────────┘
   │ · tests      │      一つでも失敗
   └──────────────┘ ───── ✗ red ──────▶  ┌───────────────┐
                                          │ マージ阻止    │  🔒
                                          └───────────────┘
                                          修正・push・再実行

CIの要点は、自動化それ自体ではなく、チェックをあなたの記憶からパイプラインへと移すことです——そこなら、疲れた夜でも飛ばせません。基本がグリーンで回るようになったら、一度やっておく価値のあるアップグレードが2つあります。一つ目は、チェックをメインブランチの必須ステータス(GitHubの「ブランチ保護ルール」)にして、赤いビルドが無視できる警告ではなく、文字どおりマージボタンを止めるようにすること。二つ目は、CIが失敗したら、失敗ログをそのままAIに貼り付けること。「この実行でCIが失敗した、これが出力——診断して直して」。ログは精密な、機械が生成したバグ報告であり、それこそAIが最も得意とする種類の入力なのです。

オフラインでも読みたい?

本編まるごとを PDF または EPUB で無料ダウンロード。