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/3test 2/3test 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を使用。

ユースケース

複数のランタイムバージョン、オペレーティングシステム、データベース、または変数の組み合わせでの互換性検証が必要な場合にマトリックスビルドを使用します。複数プラットフォームをサポートするライブラリやフレームワークに一般的です。

試してみる — GitLab CI Config Generator

フルツールを開く