mise.tomlの一部のツールだけインストールしたい

jdx/mise-actionは既定でmise installを実行し、mise.tomlに定義した全ツールをインストールする。ジョブによって使うツールが異なるモノレポなどでは、ジョブごとに一部のツールだけインストールしたい場合がある。install_args入力を使うと、mise installに渡す引数を指定し、インストール対象を絞り込める。

install_argsでインストール対象を絞り込む

mise.tomlに複数のツールを定義する。

[tools]
jq = "1.7.1"
yq = "4.44.3"

install_argsにツール名を指定すると、そのツールだけがインストール対象になる。

- uses: actions/checkout@v4
- uses: jdx/mise-action@v4
  with:
    install_args: "jq"
- run: mise ls

ログを確認すると、mise installではなくmise install jqが実行され、jqのみインストールされていることが分かる。

Running mise install jq
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

mise lsの結果でも、jqはインストール済み、mise.tomlに定義したままのyqは未インストール(missing)のままである。

jq  1.7.1             ~/work/test/test/mise.toml  1.7.1
yq  4.44.3 (missing)  ~/work/test/test/mise.toml  4.44.3

install自体を無効化する場合との違い

install入力にfalseを指定するとmise install自体を実行しない。すべてのツールのインストールをスキップしたい場合はinstall: false、一部のツールだけインストールしたい場合はinstall_argsと使い分ける。