emahiro/b.log

Drastically Repeat Yourself !!!!

Github Actions のビルドマトリックスを使う

Overview

Github Actions のビルドマトリックスを使って複数の Go のバージョンでテストを行う方法について記載します。

ビルドマトリックスとは?

Github Actions のドキュメントに書いてあります。

docs.github.com

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.

ビルドマトリックスを使えばOSSを作ってるケースで複数バージョン対応をシュッと書けるだけでなく、OS のディストリビューションGithub Actions に用意されてるものについてはシュッと書けるのでおすすめです。
コマンドラインツールとか作ってる方向けにも便利な機能ですね。