Pipeline as Codeとは?
Pipeline as Codeとは、CI/CD pipelineを、アプリケーションのコードと並んで存在するバージョン管理された設定ファイルで定義することです。
初期のCIツールはWeb UIをクリックして設定されており、pipelineをレビューしたり、コピーしたり、復元したりするのが困難でした。Pipeline as Codeはその設定をリポジトリ内のファイルへ移し、pipelineを他のコードと同じように扱えるようにします。
中心となる考え方
ダッシュボードでjobを設定する代わりに、pipeline定義をファイル、多くの場合YAMLに書き、リポジトリにcommitします。CIシステムはそのファイルを読んで何を実行するかを知ります。pipelineはコードベースの一部となり、アプリケーションと並んでバージョン管理されレビューされます。
実例
A pipeline defined in a YAML file
name: CI
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: make build
- run: make test実際の仕組み
ファイルが変わればpipelineが変わります。同じcommitで、同じpull requestでレビューされます。誰がbuild処理をなぜ変更したかを正確に確認できます。リポジトリをブランチするとpipelineもブランチされるため、feature branchはpipelineの変更をメインラインに到達する前に安全にテストできます。
なぜUIより優れているのか
- バージョン管理: すべてのpipeline変更が追跡され、レビュー可能です。
- 再現性: pipelineは履歴を含めてコードとともに移動します。
- 再利用: テンプレートと共有ファイルが重複を減らします。
- 復元: リポジトリを復元すればpipelineも復元されます。
なぜ重要か
Pipeline as Codeは、レビュー、テスト、バージョン履歴といったソフトウェアエンジニアリングの規律を、デリバリー処理そのものにもたらします。またpipelineを可搬で自己文書化されたものにします。新しいエンジニアがファイルを読めば、プロジェクトがどのようにbuildされ出荷されるかを正確に理解できます。
重要なポイント
- Pipeline as CodeはCI/CDをバージョン管理されたファイルで定義します。
- pipelineの変更はアプリケーションのコードと同様にレビューされ追跡されます。
- 再現性、再利用、復元性を向上させます。
関連ガイド
What Is a CI/CD Pipeline?What is a CI/CD pipeline? Learn the stages a change passes through, how they connect, an example pipeline, an…
What Is Infrastructure as Code?What is infrastructure as code? Learn how to define servers and cloud resources in version-controlled files,…
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 CI Server?What is a CI server? Learn what a continuous integration server does, how it coordinates builds and runners,…