GitHub Actions
概要
GitHub Actions は、GitHub に組み込まれた CI/CD システムです。リポジトリに YAML ファイルを追加して、ワークフロー — プッシュ、プルリクエスト、スケジュールなどのイベントで自動的に実行される一連のステップ — を記述します。各ワークフローは GitHub がホスティングするマシン (「ランナー」) 上で実行されるため、自前のサーバーを一切管理せずにコードのテスト、ビルド、デプロイができます。「コードをプッシュした」から「アプリが稼働する」までの道のりを自動化する、最も一般的な方法です。
強み
- GitHub に直接組み込まれている — 別の CI サービスをセットアップする必要がありません。
- リポジトリのイベントでトリガー: すべての PR でテストを実行し、main へのプッシュごとにデプロイ。
- 共通タスク (セットアップ、デプロイ、lint) 向けの再利用可能なアクションの大規模なマーケットプレイス。
- Linux、macOS、Windows 向けのホスティング型ランナー。パブリックリポジトリには寛大な無料分があります。
- 安全なデプロイのためのシークレット管理と環境保護機能。
トレードオフ
- YAML ワークフローはすぐに複雑になり、失敗したパイプラインのデバッグは骨が折れます。
- プライベートリポジトリの実行時間 (分) は従量課金で、多用すると費用がかかります。
- リモートのランナー上で実行されるため、失敗をローカルで再現するのは面倒です。
- サードパーティのアクションは便利ですが、精査すべきサプライチェーンの依存関係です。
最適な用途
リポジトリから直接、テスト、ビルド、デプロイを自動化すること — すべてのプルリクエストでテストスイートを実行し、main が更新されるたびにホスト (Cloudflare Pages など) に出荷すること。
バイブコーディングとの相性
GitHub Actions は、エージェントがパイプライン全体を書いてくれるため、バイブコーディングと完璧に組み合わさります。依存関係をインストールし、テストを実行し、main へのプッシュでデプロイするワークフローを追加するよう依頼しましょう。エージェントは一般的なアクション名や YAML の形を知っています。本当の価値はセーフティネットです。すべての変更でテストが自動的に実行されるようになれば、AI がビルドを壊すものをこっそりマージすることはできません。ヒント: ホストとパッケージマネージャをエージェントに伝えれば、適切なデプロイアクションやキャッシュ設定を選んでくれます。シークレットは YAML ではなく、必ずリポジトリの設定に保管しましょう。
# .github/workflows/ci.yml
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npm ci
- run: npm test