【しーあいしーでぃー】
CI/CD とは?
最終更新:
💡 小さな変更を確かめて、継続的に届ける
コード変更を頻繁に統合し、自動ビルドやテストで確認するCIと、変更を本番へ届けるCDを組み合わせた開発の実践。CDには、本番配備できる状態を保つDeliveryと、本番配備まで自動化するDeploymentがある。
📌 このページのポイント
- CIはコード変更を頻繁に統合し、自動ビルドやテストで確認する
- Continuous Deliveryは、変更を本番配備できる状態に保つ
- Continuous Deploymentは、確認を通過した変更の本番配備まで自動化する
- ツールだけでなく、確認内容・配備条件・失敗時の対応を設計する
CI/CDは何のために使うの?
変更を小さく頻繁に統合し、ビルドやテストを繰り返して問題を早く見つけるためだよ。配備の手順も自動化できる。ただし、入れれば必ずバグがなくなるという意味ではないんだ。
CIではPRのテストに失敗すると必ずマージできない?
CDは全部、本番まで自動なの?
Continuous Deliveryは、確認済みの変更を本番配備できる状態まで整えるよ。最後の配備判断を人が行う場合もある。Continuous Deploymentは、その本番配備も自動化するんだ。
GitHub Actionsではどう作るの?
テストを通ったら安心して配備できる?
確認した範囲で問題を見つけられなかったということだよ。必要なテストや配備条件、失敗時に戻す手順を考える。どんな変更も一定の時間で本番反映されるとは限らないんだ。
もっと詳しく知りたい人へ
CI/CDツールを入れれば、継続的な統合になる?
ツールは自動実行を助けるが、変更を長期間別々のブランチに置いたままでは、頻繁に共有コードへ統合するCIの実践とは異なる。統合の頻度と、自動チェックの内容の両方を考える。
まとめ:ざっくりこれだけ覚えればOK!
「CI/CD」って出てきたら「コードの変更を継続的に確かめ、届けるための実践」と思えばだいたいOK!
📖 おまけ:英語の意味
「Continuous Integration / Continuous Delivery or Deployment」 = 継続的統合/継続的デリバリーまたはデプロイメント
💬 Continuousは継続的、Integrationは統合という意味だよ。CDのDがDeliveryかDeploymentかで、本番配備まで自動にするかが違うんだ