まとめ — 始め方&選び方フローチャート&比較早見表
📖 このページのゴール:ここまでの全部を1ページに圧縮します。何から始めるか(答え:まず「push でテスト」だけ)、何を自動化したいか別の選び方、手作業 vs CI/CD やトリガーの早見表、そしてあなたのタイプ別おすすめまで。迷ったらこのページに戻ってくれば大丈夫、という「地図」にします。 ← 目次・はじめにへもどる
🟢 まず始め方:いきなり全部やらない
CI/CD と聞くと「テスト・ビルド・セキュリティ・デプロイ…全部いっぺんに組むの?」と身構えがちですが、逆です。鉄則はこれだけ。
🟢 まず
.github/workflows/ci.ymlを1つ作って、「push でテストを走らせる」だけ。 小さく始めて、効いてきたら少しずつ足す。
| ステップ | やること | 足すきっかけ |
|---|---|---|
| 🟢 第0歩 | .github/workflows/ci.yml を作り、push でテストだけ自動化 |
いますぐ |
| 🟢 第1歩 | PR でもテスト+lint/型チェックを追加、必須チェックにしてマージをブロック | チームで開発し始めたら |
| 🔧 第2歩 | CodeQL(セキュリティ)/Dependabot(依存更新)を足す | 公開・本番が見えてきたら |
| 🔧 第3歩 | デプロイ/リリース(CD)を自動化 | 「手で届ける」のが面倒になったら |
| 🔧 第4歩 | マトリクス(複数OS/版)・キャッシュで速く・広く | 規模が大きくなったら |
ポイントは、最初の1ファイルが動いた時点で、もう CI/CD は始まっていること。完璧を目指して固まるより、小さく動かして育てるのが正解です。
🧭 選び方フローチャート:何を自動化したい?
「結局、自分は何を自動化すればいいの?」を、やりたいこと起点でたどれる地図です。
Q. 何を自動化したい?
│
├─ 🟢「壊れてないか確認したい」(まずここから)
│ ├─ テストを毎回回す ……… on: push / pull_request +「npm test」
│ ├─ コードの体裁・型を見る … lint / tsc を step に追加
│ └─ 脆弱性を見つけたい …… 🔧 CodeQL(コードスキャン)
│
├─ 🔧「できたものを自動で届けたい」(CD)
│ ├─ Webサイト/アプリを公開 … Vercel / Netlify / GitHub Pages へデプロイ
│ ├─ バージョンを配布したい … タグ push → GitHub Release(成果物を添付)
│ └─ サーバーへ送りたい …… SSH/rsync・Docker イメージを push
│
├─ 🔧「決まった時間に動かしたい」
│ └─ 毎朝バッチ・リンク切れチェック … on: schedule(cron=定期実行)
│
└─ 🔧「PRレビューを楽にしたい」
├─ 機械に一次レビューさせる … レビューBot(CodeRabbit / Sourcery / Copilot)
└─ 依存ライブラリを自動更新 … Dependabot(更新PRを自動で作る)
🟢 迷ったらいちばん上のルート(push でテスト)から。CD やレビューBot は、土台ができてから足せば十分です。
⚖️ 比較早見表 その1:手作業 vs CI/CD
「そもそも自動化って、手でやるのと何が違うの?」を4つの軸でまとめます。
| 軸 | 😱 手作業 | 🏭 CI/CD(自動) |
|---|---|---|
| ミス | 忘れる・サボる・手順を1つ飛ばす | 毎回・同じ。うっかり飛ばしが起きない |
| 速さ | 1つずつ順番に、人が張り付く | 並行で回り、待ち時間に他の作業ができる |
| 安心 | 壊れていても気づかずマージ/リリース | 壊れていれば即ブザー、マージをブロックできる |
| 再現性 | 「自分の環境では動く」が起きる | いつもまっさらな同じ環境。誰がやっても同じ |
🟢 ひとことで:「人の気合い」ではなく「しくみ」で品質を守る——気合いは続かないが、しくみは続く。
🎬 トリガー早見表:いつ動かす?(on:)
ワークフローは「いつ動かすか=トリガー」で性格が決まります。代表的な5つを「何に使う?」とセットで。
トリガー(on:) |
読み | いつ動く? | 何に使う? |
|---|---|---|---|
push |
プッシュ | コードを push したとき | 🟢 まずこれ。テスト/ビルドの自動チェック |
pull_request |
プルリクエスト | PR が作られた/更新されたとき | 🟢 マージ前の最終チェック(必須チェック化) |
schedule |
スケジュール | cron で決めた時刻に定期的に | 🔧 毎朝バッチ・リンク切れ・依存の棚卸し |
workflow_dispatch |
— | GitHub の画面の手動ボタンを押したとき | 🔧 任意のタイミングで手動実行・再実行 |
release / タグ |
リリース/タグ | リリース作成やタグ push のとき | 🔧 リリースの自動化(成果物を添付して配布) |
👥 ペルソナ別:あなたのタイプ別おすすめ
「どこまでやれば十分?」は規模で変わります。背伸びしすぎない目安をどうぞ。
| タイプ | おすすめ構成 | ねらい |
|---|---|---|
| 🟢 個人開発 | push でテスト + Pages/Vercel への自動デプロイ | 「テスト忘れ」と「手デプロイ事故」をなくす |
| 🔧 スタートアップ | テスト + デプロイ + レビューBot(CodeRabbit 等) | 少人数でも一次レビューを機械に任せて速度を出す |
| 🔧 中堅 | マトリクス(複数OS/版)+ 必須チェック + CodeQL + Dependabot | 品質を面で担保し、依存・脆弱性も自動で追う |
| 🔧 大企業 | 上に加えて 環境分離(dev/stg/prod)・承認フロー・監査ログ | デプロイを統制し、誰が何を出したかを残す |
🟢 上から下へは足し算です。個人で始めて、人や本番が増えたら一段ずつ重ねていけばOK。
🌐 GitHub Actions 以外のCI/CDは?
CI/CD のしくみは GitHub Actions だけのものではありません。GitLab CI/CD(GitLab 組み込み)・CircleCI・Jenkins(自前で立てる老舗)など、ツールはいろいろあります。ただし考え方はどれも同じ——「きっかけ(push など)→ 決めた手順を自動で流す」「設定はコード(YAML 等)で書く」という背骨は共通です。だから、ここで覚えた on → jobs → steps の感覚は他ツールでもそのまま生きます。そのうえで、コードを GitHub に置いているなら、追加の契約も別サービスもいらず最短で始められる GitHub Actions が、いちばん手軽な入口になります。
🟢 ひとことで言うと
まずは ci.yml を1つ作って「push でテスト」だけ——CI/CD はそこから始まります。あとは🧭フローチャートで「何を自動化したいか」を選び、手作業 vs CI/CD(ミス・速さ・安心・再現性)とトリガー早見表を地図に、自分のタイプに合わせて一段ずつ足すだけ。考え方は他のCI/CDツールでも同じで、GitHub に置いているなら Actions が最短の入口です。
➡️ 次へ
最後は、ここまでに出てきた用語をふりがな付きでまとめた辞典です。「あれ、何だっけ?」をいつでも引けるようにしておきましょう。