戦略マトリックスを含むようにワークフローを変更する
strategy キーワードは、ビルドマトリックスを設定するために使用されます。ここでは、単一のキー node-version を持つマトリックスを定義します。
github-actions-demo の GitHub リポジトリページで、緑色の Code ボタンをクリックします。
- HTTPS タブが選択されていることを確認し、URL をコピーします。URL は
https://github.com/your-username/github-actions-demo.git のような形式になります。
- LabEx 環境でターミナルを開きます。デフォルトのパスは
~/project です。
git clone コマンドを使用してリポジトリをダウンロードします。your-username は実際の GitHub ユーザー名に置き換えてください。
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
出力例:
Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
- クローンしたリポジトリに移動します。
cd ~/project/github-actions-demo
-
WebIDE エディタを使用して、新しいワークフローファイル .github/workflows/matrix-build.yml を作成します。ファイルエクスプローラーの左側にある project/github-actions-demo/.github/workflows/ の下にファイルを見つけることができます。
-
基本的なワークフロー構造の作成から始めます。ワークフロー名とトリガーを追加します。
name: Matrix Build
on: [push]
- 次に、基本的なビルドジョブ構造を持つ
jobs セクションを追加します。
jobs:
build:
runs-on: ubuntu-latest
- マトリックス戦略を追加します。これは、複数の Node.js バージョンでジョブを実行可能にするための重要な部分です。
strategy:
matrix:
node-version: [18, 20, 22]
これにより、node-version というマトリックス変数が定義され、3 つの値が割り当てられます。GitHub Actions は、各値に対して個別のジョブを作成します。
steps セクションを追加します。まず、チェックアウトステップを追加します。
steps:
- uses: actions/checkout@v4
- Node.js セットアップステップを追加します。
${{ matrix.node-version }} を使用して現在のマトリックス値を参照していることに注意してください。
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- 依存関係をインストールするステップを追加します。
- name: Install dependencies
run: npm install
- アーティファクトディレクトリを作成するビルドステップを追加します。
- name: Build project
run: |
mkdir dist
echo "This is the build artifact" > dist/build.txt
- テストステップを追加します。
- name: Run tests
run: npm test
- 最後に、ビルドアーティファクトをアップロードするステップを追加します。各アーティファクトを一意にするために、アーティファクト名にマトリックスバージョンが含まれていることに注意してください。
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-assets-${{ matrix.node-version }}
path: dist
完全なファイルは次のようになります。
name: Matrix Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Build project
run: |
mkdir dist
echo "This is the build artifact" > dist/build.txt
- name: Run tests
run: npm test
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-assets-${{ matrix.node-version }}
path: dist
解説
strategy: ビルド戦略を定義します。
matrix: マトリックス変数を定義します。
node-version: 私たちが選択した変数名です。これに値の配列 [18, 20, 22] を割り当てました。GitHub Actions は、build ジョブを各値に対して 3 回実行します。
${{ matrix.node-version }}: この構文により、ステップ内で現在のマトリックス値にアクセスできます。
変更を加えたら、ファイルを保存してください (Ctrl+S または Cmd+S)。