CI/CDとは? 平易な言葉での入門
CI/CDは「自分のマシンでは動く」を「あらゆるpushで、自動的に動く」へと変える - 各変更をbuild・テストし、自動化されたpipelineを通して出荷することで。
CI/CDは継続的インテグレーションと継続的デリバリー(またはdeployment)を意味する。コード変更からテスト済みでリリース可能な - そしてしばしばリリース済みの - artifactに至る道のりを自動化するプラクティスだ。
それが解決する問題
自動化がないと、全員の作業を統合するのは周期的で苦痛なイベントになる: branchが乖離し、バグが遅れて表面化し、リリースは手作業でリスキーだ。CI/CDは、あらゆる変更で同じチェックを実行することでそのループを数分に縮め、問題を小さいうちに捕まえる。
pipelineが行うこと
- テスト対象の変更のコードをcheckoutする。
- クリーンな環境で、毎回同じ方法でbuildする。
- テスト、linter、セキュリティ/品質のgateを実行する。
- artifact(バイナリ、イメージ、パッケージ)を生成し、CDではそれをdeployする。
CI vs CD を一行で
継続的インテグレーションは、変更を頻繁かつ自動的にmergeして検証することだ。継続的デリバリーはそれを拡張し、ソフトウェアを常にリリース可能な状態に保つ; 継続的deploymentはさらに一歩進み、合格したあらゆる変更を自動で本番へ出荷する。
チームが採用する理由
見返りは、より速いフィードバック、より小さく安全なリリース、手作業の削減、そして全員が信頼できるbuildだ。コストは、pipeline自体が速く信頼できる状態を保つべきインフラになることで - ここでrunner、cache、flake管理が関わってくる。
重要なポイント
- CI/CDは変更のたびにbuild・テスト・出荷を自動化する。
- CI = 頻繁に統合・検証する; CD = 常にリリース可能または自動deploy。
- 中核的な利点は、速いフィードバックとより小さく安全なリリースだ。
- pipelineは、速く信頼できる状態を保つ必要のある実際のインフラだ。
関連ガイド
Continuous Integration vs Delivery vs DeploymentContinuous integration, delivery, and deployment are three different things. Learn exactly where each stops a…
What Is a GitHub Actions Workflow? Jobs, Steps, and TriggersA GitHub Actions workflow is a YAML file that defines when and how your CI runs. Learn how events, jobs, step…
What Is a CI Runner? Managed vs Self-Hosted ExplainedA CI runner is the machine that executes your pipeline jobs. Learn how runners work, the difference between h…