Skip to content
Latchkey

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をコードで定義することで、処理はバージョン管理され、レビュー可能になります。

関連ガイド