マトリクス戦略によるマルチバージョンテスト

GitHub Actionsのマトリクス戦略を使用して、複数のNode.jsバージョン、OS、または変数の組み合わせでテスト。fail-fast、include/exclude、動的マトリクスを解説。

Testing

詳細な説明

マトリクステスト戦略

マトリクス戦略はGitHub Actionsの最も強力な機能の1つです。異なる言語バージョン、OS、またはカスタム変数で同じジョブを複数回実行でき、ワークフローコードを複製する必要がありません。

ワークフローYAML

name: Matrix CI

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        node-version: [18, 20, 22]
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'npm'

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test

マトリクス戦略の仕組み

この設定は9つのジョブ(3 OS x 3 Nodeバージョン)を作成します。各組み合わせは別々のジョブとして並列で実行されます。

主要オプション

オプション 説明
fail-fast: false 1つが失敗しても他のマトリクスジョブを続行
fail-fast: true(デフォルト) 1つ失敗すると全マトリクスジョブをキャンセル
include クロス積にない特定の組み合わせを追加
exclude クロス積から特定の組み合わせを除外

マトリクス変数の参照

ジョブ設定のどこでも${{ matrix.variable-name }}を使用できます — ステップ入力、環境変数、runコマンド、または条件式で。

ユースケース

複数のランタイムバージョンやOSで動作する必要があるライブラリ、フレームワーク、ツールのテスト。特定のバージョン範囲との互換性を約束するオープンソースパッケージに不可欠です。

試してみる — GitHub Actions Workflow Builder

フルツールを開く