📑
GitHub Actions のmatrix - 配列の繰り返し処理のようなもの
matrixって結局なに?
matrixは、配列の要素を順番に処理していくような機能です。
プログラミングでいう「for文」のようなものです。
基本的な書き方
jobs:
example:
strategy:
matrix:
name: [a, b, c]
steps:
- run: echo ${{ matrix.name }}
これは以下のようなコードのイメージです:
names = ['a', 'b', 'c']
for name in names:
print(name)
もう少し実用的な例
jobs:
build:
strategy:
matrix:
service: [frontend, backend, worker]
steps:
- run: docker build -f ${{ matrix.service }}/Dockerfile .
これは以下の処理が実行されます:
docker build -f frontend/Dockerfile .
docker build -f backend/Dockerfile .
docker build -f worker/Dockerfile .
複数の配列も組み合わせられる
strategy:
matrix:
name: [frontend, backend]
env: [dev, stg, prod]
これは以下の組み合わせが実行されます:
- frontend + dev
- frontend + stg
- frontend + prod
- backend + dev
- backend + stg
- backend + prod
まとめ
- matrixは配列の繰り返し処理みたいなもの
- 複数の配列を組み合わせることもできる
シンプルですが強力な機能なので、同じような処理を複数回実行するときに活用してみてください!
Discussion