CI/CDとは
CI/CDは、コードを変更したときに、チェック、テスト、ビルド、デプロイを自動で行う仕組みです。
CI/CDを組めると、「自分のコードが動く」だけでなく、「変更を安全に届ける仕組みまで考えられる」ことを示せます。
転職を考えているエンジニアや未経験からポートフォリオを作る人にとって、CI/CDはかなり評価されやすい領域です。
CIとCDの違い
CIとCDはセットで語られますが、役割は違います。
| 用語 | 意味 | 例 |
|---|---|---|
| CI | Continuous Integration | PR作成時にlint、test、buildを実行する |
| CD | Continuous Delivery / Deployment | main反映後にステージングや本番へ届ける |
CIは、変更を取り込む前の品質チェックです。
commit
-> push
-> pull request
-> lint
-> test
-> build
CDは、通った変更を環境へ届ける流れです。
main merge
-> build
-> deploy staging
-> approve
-> deploy production
CIでよく走るもの
CIでは、次のような処理を自動実行します。
| 処理 | 目的 |
|---|---|
| format check | コードの見た目を揃える |
| lint | バグや規約違反を検出する |
| typecheck | TypeScriptなどの型エラーを検出する |
| unit test | 小さな単位の動作を確認する |
| integration test | 複数機能の連携を確認する |
| build | 本番用にビルドできるか確認する |
| security scan | 依存関係や脆弱性を確認する |
すべてを最初から完璧に入れる必要はありません。ポートフォリオなら、まず lint、typecheck、test、build の4つがあるだけでも印象が変わります。
なぜ評価されるのか
CI/CDが評価される理由は、現場の開発に直結するからです。
- 手元では動くが本番で壊れる、を減らせる
- レビュー前に機械的なミスを落とせる
- チーム全員の品質基準を揃えられる
- デプロイ作業を属人化しにくい
- 変更のたびに同じ確認を自動でできる
未経験者でもCI/CDを入れていると、「現場の開発フローを意識している」と伝わりやすくなります。
まず作るべき最小構成
Node.js系のポートフォリオなら、最小構成は次のようなものです。
name: CI
on:
pull_request:
push:
branches: [main]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm run lint
- run: npm run typecheck
- run: npm test
- run: npm run build
これだけでも、PRやmainへのpushで自動チェックが走ります。
CI/CDは速度も大事
最初は「動くCI」を作るだけで十分です。しかし、実務では「何分かかるか」も重要になります。
たとえば、PRを作るたびにlintだけで数分かかると、開発速度にじわじわ影響します。
PR作成
-> CI待ち 8分
-> 修正
-> CI待ち 8分
-> レビュー修正
-> CI待ち 8分
1回の待ち時間は小さく見えても、チーム全体では大きな時間になります。
ポートフォリオでの見せ方
READMEに次のように書けると、評価されやすいです。
## CI/CD
- Pull Request時に lint / typecheck / test / build を自動実行
- mainブランチへのpushでデプロイを実行
- GitHub Actionsのcacheを使い、依存関係インストール時間を短縮
- pre-commit hookでコミット前に変更ファイルだけlint
さらに一段上げるなら、CIの処理時間を改善した記録も書きます。
CI改善:
- npm installをnpm ci + cacheへ変更
- lintとtestをjob分割
- 不要なpush時CIをpathsで抑制
- pre-commitをHuskyからLefthookへ移行
「CI/CDを入れた」だけでなく、「開発速度まで見た」と伝えられます。
まとめ
CI/CDは、コード品質とデプロイを自動化する仕組みです。
- CIはPRやpush時の品質チェック
- CDは安全に環境へ届ける流れ
- lint、test、buildを自動化するだけでも価値がある
- 転職やポートフォリオでも評価されやすい
- 慣れてきたら処理時間も意識する
まずは動くCIを作り、その後に速くする。この順番で十分です。