CIでもmise.tomlに定義したタスクをそのまま使いたい
【mise】mise runでタスクを定義して実行する
で紹介したmise runは、ローカルでもCIでも同じmise.tomlのタスク定義をそのまま実行できる。jdx/mise-actionでセットアップした後にmise runを実行するだけで、ビルドやテストといったタスクをGitHub Actions上でも実行できる。
mise.tomlにタスクを定義する
mise.tomlにタスクを定義しておく。
greetタスクの中で、mise.tomlに書いたjqをそのまま使う。
[tools]
jq = "1.7.1"
[tasks.greet]
run = "echo '{\"name\": \"mise\"}' | jq .name"
mise-actionの後にmise runを実行する
jdx/mise-actionでmiseとツールをセットアップした後、通常のrunステップでmise runを実行する。
- uses: actions/checkout@v4
- uses: jdx/mise-action@v4
- run: mise run greet
mise-actionが引き継いだPATH経由でmiseコマンドと、セットアップ済みのjqがそのまま使えるため、追加の設定なしにmise runでタスクを実行できる。
Run mise run greet
mise run greet
[greet] $ echo '{"name": "mise"}' | jq .name
"mise"
buildやtestのようなタスクも同じ仕組みで動かせる。ローカルではmise run build、CIではmise-actionのセットアップ後にmise run buildを呼ぶだけで済むため、シェルスクリプトをCI設定ファイルに直接書かず、mise.tomlのタスクとして一元管理できる。
\第一線のプログラマーの行動原理を学べる!/
