GitHub Actionsのワークフローでmise.tomlに書いたツールを使いたい
ローカルではmise installを実行すればよいが、GitHub Actionsのワークフロー上でも同じようにmise.tomlに書いたツールをセットアップしたい。jdx/mise-action
を使うと、ワークフロー上にmiseをインストールし、リポジトリのmise.tomlに書かれたツールをそのまま使えるようになる。
mise-actionの基本
actions/checkoutの後にjdx/mise-actionを置くだけで、オプションなしでも動く。
- uses: actions/checkout@v4
- uses: jdx/mise-action@v4
- run: jq --version
リポジトリ直下に以下のようなmise.tomlがある場合を試す。
[tools]
jq = "1.7.1"
jdx/mise-actionは、mise本体のインストールからmise installの実行、後続のステップへの環境変数・PATHの引き継ぎまでを自動でこなす。
Running mise install
mise jq@1.7.1 [1/2] install
mise jq@1.7.1 [1/2] download jq-linux-amd64
mise jq@1.7.1 [2/2] checksum jq-linux-amd64
mise jq@1.7.1 [2/2] extract jq-linux-amd64
mise jq@1.7.1 ✓ installed
Running mise ls
jq 1.7.1 ~/work/test/test/mise.toml 1.7.1
続くrun: jq --versionのステップは、mise-actionが引き継いだPATH経由でmise.tomlに書いたjqを実行する。
Run jq --version
jq-1.7.1
デフォルトで有効になっている挙動
jdx/mise-actionはオプションを何も指定しなくても、次の挙動がデフォルトで有効になっている。
- mise本体の最新版をダウンロードしてインストールする
- リポジトリ直下の
mise.toml(または.tool-versions)を読み込み、mise installを実行する - インストールしたツールを
~/.local/share/miseにGitHubのキャッシュとして保存し、次回以降のワークフロー実行を高速化する - miseが設定する環境変数とPATHを、以降のステップへ引き継ぐ
上記のデフォルト挙動は入力オプションで個別に変更できるが、mise.tomlに書いたツールをそのままCIで使いたいだけであれば、jdx/mise-actionを置くだけで完結する。
\第一線のプログラマーの行動原理を学べる!/
