https://github.com/buildkite-plugins/mise-buildkite-plugin
https://github.com/buildkite-plugins/mise-buildkite-plugin
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/buildkite-plugins/mise-buildkite-plugin
- Owner: buildkite-plugins
- Created: 2026-02-15T03:08:41.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-03-28T11:58:50.000Z (2 months ago)
- Last Synced: 2026-03-28T15:37:31.659Z (2 months ago)
- Language: Shell
- Size: 34.2 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mise Buildkite Plugin
Install [mise](https://mise.jdx.dev/), run `mise install`, and export the tool environment into the Buildkite step.
This plugin is intentionally small:
- `mise` is installed if missing or at the wrong version
- `mise install` always runs
- `mise env --shell bash` is sourced in the hook and appended to `$BUILDKITE_ENV_FILE`
- tool versions come from the repository, not plugin config
## Example
```yml
steps:
- label: ":wrench: Test"
plugins:
- mise#v1.1.1:
version: 2026.2.11
command: go test ./...
```
## Monorepo Example
```yml
steps:
- label: ":wrench: Test backend"
plugins:
- mise#v1.1.1:
dir: backend
command: go test ./...
```
## Hosted Agent Cache Volumes
```yml
cache: ".buildkite/cache-volume"
steps:
- label: ":wrench: Test"
plugins:
- mise#v1.1.1: ~
command: go test ./...
```
When running on Buildkite hosted agents, the plugin automatically uses `/cache/bkcache/mise` as `MISE_DATA_DIR` if a cache volume is attached. Buildkite only mounts that volume when the pipeline or step defines `cache`, so you still need to request one in `pipeline.yml`.
## Configuration
- `version` (default: `latest`): mise version to install.
- `dir` (default: checkout directory): directory where `mise install` and `mise env` run.
- `cache-dir` (default: unset): directory to use for `MISE_DATA_DIR`. This is mainly useful on self-hosted agents with a persistent disk.
## Repo Requirements
The target directory must contain one of:
- `mise.toml`
- `.mise.toml`
- `.tool-versions`
`MISE_DATA_DIR` still takes precedence over plugin configuration. Advanced `mise` behavior should otherwise be configured with normal step environment variables such as `MISE_LOG_LEVEL` or `MISE_EXPERIMENTAL`.
## Development
Run plugin checks locally:
```bash
mise install
docker run --rm -v "$PWD:/plugin" -w /plugin buildkite/plugin-linter --id buildkite/mise --path /plugin
docker run --rm -v "$PWD:/plugin" -w /plugin buildkite/plugin-tester
"$(mise where shellcheck@0.11.0)/shellcheck-v0.11.0/shellcheck" hooks/pre-command tests/pre-command.bats
```