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