GitLab CIでの並列マトリックスビルド
GitLab CIのparallel:matrixを使用して、複数のバージョン、プラットフォーム、設定でテスト。変数配列からジョブの組み合わせを自動生成。
Pipeline Architecture
詳細な説明
並列マトリックスビルド
GitLab CIのparallel:matrixキーワードは、変数の組み合わせから自動的に複数のジョブインスタンスを生成します。バージョン、プラットフォーム、機能フラグにわたるテストに最適です。
Node.jsバージョンでのテスト
test:
stage: test
image: node:$NODE_VERSION-alpine
parallel:
matrix:
- NODE_VERSION: ["18", "20", "22"]
script:
- npm ci
- npm test
これにより3つのジョブが生成されます:test 1/3、test 2/3、test 3/3、それぞれ異なるNode.jsバージョン。
多次元マトリックス
test:
stage: test
image: python:$PYTHON_VERSION-slim
parallel:
matrix:
- PYTHON_VERSION: ["3.10", "3.11", "3.12"]
DATABASE: ["postgres", "mysql"]
これにより6つのジョブ(3つのPythonバージョン x 2つのデータベース)が生成されます。
制限とベストプラクティス
- マトリックスあたり最大50ジョブ(GitLabの制限)。
- 各ジョブには独自のログがあり、独立して失敗可能。
- 実験的バージョンには
allow_failureを使用。
ユースケース
複数のランタイムバージョン、オペレーティングシステム、データベース、または変数の組み合わせでの互換性検証が必要な場合にマトリックスビルドを使用します。複数プラットフォームをサポートするライブラリやフレームワークに一般的です。