CI/CD pipelineとは?
CI/CD pipelineとは、コードの変更がcommitから本番まで通過する、各ステップにゲートを備えた自動化されたステージの連続です。
pipelineはソフトウェアデリバリーの組立ラインです。各ステージが1つの仕事をこなし、次へ引き渡し、何かが失敗すればラインを止めます。デリバリー処理をpipelineとして可視化することで、予測可能で改善しやすいものになります。
pipelineとは何か
CI/CD pipelineは、build、テスト、deployなど、変更が順番に通過しなければならない定義された一連の自動ステージです。各ステージは成功して作業を先へ渡すか、失敗して進行を止めるかのどちらかです。pipelineは通常、pushやpull requestのようなコードイベントによって起動されます。
一般的なステージ
- Source: commitまたはpull requestが実行を起動します。
- Build: コードをコンパイルし、依存関係をインストールします。
- Test: ユニット、統合、その他の自動テストを実行します。
- Package: バージョン管理されたartifactを生成します。
- Deploy: artifactをstagingへ、次に本番へ昇格させます。
ステージのつながり方
ステージは順番に実行されますが、ステージ内の独立した作業は並列で実行できます。たとえば複数のOSで同時にテストするなどです。いずれかのステージでの失敗は残りを短絡させるため、テストに通らなかったbuildをdeployすることは決してありません。早い段階で生成されたartifactは、再buildされるのではなく後段で再利用されます。
pipelineの例
A four-stage pipeline outline
stages:
- build # compile + install deps
- test # unit + integration tests
- package # produce artifact
- deploy # staging -> productionなぜpipelineが重要か
pipelineは、曖昧で手動のrelease処理を、明示的で再現可能なものに変えます。誰もが変更がどこにあり、何が通り、何が失敗したかを見ることができます。ステップがコードで定義されているため、処理は他のコードと同様にバージョン管理され、レビュー可能です。より速いrunnerはpipeline全体を短縮し、これがチームがrunnerの速度に投資する理由です。
重要なポイント
- pipelineは、commitからdeployまでの順序付けられた自動ステージの集合です。
- いずれかのステージでの失敗は残りを止め、本番を保護します。
- pipelineをコードで定義することで、処理はバージョン管理され、レビュー可能になります。
関連ガイド
What Is CI/CD? A Beginner-Friendly ExplanationCI/CD explained for beginners: what continuous integration and continuous delivery mean, how the pipeline wor…
What Is a Deployment Pipeline?What is a deployment pipeline? Learn how a change is promoted through environments toward production, the sta…
What Is Pipeline as Code?What is pipeline as code? Learn how defining your CI/CD pipeline in version-controlled files works, an exampl…
What Is a Build in Software?What is a build? A beginner explainer on turning source code into runnable software, what a build produces, a…