Overview
Github Actions のビルドマトリックスを使って複数の Go のバージョンでテストを行う方法について記載します。
ビルドマトリックスとは?
Github Actions のドキュメントに書いてあります。
strategy.matrix
を指定すると matrix
で指定された値(配列なら要素分) を ${{ matrix.value }}
の value に入れて Actins でビルドしてくれる機能です。
これにより、例えば今まで複数の言語のバージョンをサポートしたいケース(Goなら直近2バージョン)で2つ step を記載していたのをstep を1つにまとめることが可能になります。
Samples
以下のような感じで設定します。
https://github.com/emahiro/glc/blob/master/.github/workflows/gotest.yml#L6-L9
バージョンの指定方法は Github Actions の言語ごとの設定を参考にしました。
ex.
- https://github.com/actions/setup-go/blob/main/.github/workflows/versions.yml#L18-L22
- https://github.com/mvdan/github-actions-golang/blob/master/.github/workflows/test.yml#L5-L8
ビルドマトリックスを使えばOSSを作ってるケースで複数バージョン対応をシュッと書けるだけでなく、OS のディストリビューションも Github Actions に用意されてるものについてはシュッと書けるのでおすすめです。
コマンドラインツールとか作ってる方向けにも便利な機能ですね。