Skip to content
Latchkey

mise in CI: Activate Tools and Run Tasks

In CI you install mise, run mise install, then run commands through mise so the pinned tools are on PATH.

The one mise gotcha in CI is activation: installed tools are not automatically on PATH in a non-interactive step. The fix is mise exec or the official action that wires PATH for you.

What it does

A pipeline installs mise (via the official setup action or the install script), runs mise install to provision pinned versions, then runs build commands. Because CI shells are non-interactive, you either use mise exec -- <command> (or mise run <task>), or rely on the setup action to add the mise shims to PATH for subsequent steps.

Common usage

YAML / Terminal
# GitHub Actions
- uses: jdx/mise-action@v2   # installs mise, runs mise install, sets PATH
- run: node --version        # pinned Node now on PATH
- run: mise run build

# manual install on any runner
curl https://mise.run | sh
eval "$(~/.local/bin/mise activate bash)"
mise install
mise exec -- npm test

Syntax

Step / commandWhat it does
mise-actionInstalls mise, runs install, adds tools to PATH
mise installProvision the pinned tool versions
mise exec -- <cmd>Run a command with tools and env applied
mise run <task>Run a defined task with tools active
mise activate bashEmit activation lines for the shell
MISE_DATA_DIRCache this directory to skip re-downloads

In CI

Prefer the official mise-action: it installs mise, runs mise install, and sets PATH so later run steps see the tools without mise exec. If you install manually, remember non-interactive steps are not activated, so wrap commands in mise exec -- or run mise run. Cache the data dir to avoid re-downloading toolchains every job.

Common errors in CI

"node: command not found" right after mise install means tools were installed but not activated; use mise exec -- or the setup action. "mise: command not found" means the install step was skipped or mise is off PATH. Untrusted config can prompt "Config file mise.toml is not trusted"; run mise trust or set MISE_TRUSTED_CONFIG_PATHS in CI.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →