1. Resources
  2. /
  3. Plugins
  4. /
  5. setup-runtime-buildkite-plugin

Setup Runtime Buildkite Plugin

Build status

A Buildkite plugin to install and configure language runtimes and tools for your build steps.

Specify the tools you need directly in your pipeline YAML — the plugin installs them, configures the environment (GOROOT, JAVA_HOME, corepack, etc.), and prints the active versions to the build log. It can also auto-detect tools from mise.toml, .mise.toml, or .tool-versions in your repository.

Uses mise under the hood for tool installation and version management.

Examples

Inline tools

steps:
  - label: ":golang: Test"
    plugins:
      - buildkite/setup-runtime#v1.0.0:
          tools:
            - "go@1.22"
    command: go test ./...

Multiple tools

steps:
  - label: ":node: Build"
    plugins:
      - buildkite/setup-runtime#v1.0.0:
          tools:
            - "node@20"
            - "python@3.12"
    command: npm run build

Auto-detect from repo config

If your repository contains a mise.toml, .mise.toml, or .tool-versions, the plugin picks it up automatically:

steps:
  - label: ":wrench: Build"
    plugins:
      - buildkite/setup-runtime#v1.0.0: ~
    command: make build

Monorepo

steps:
  - label: ":golang: Test backend"
    plugins:
      - buildkite/setup-runtime#v1.0.0:
          tools:
            - "go@1.22"
          dir: backend
    command: go test ./...

Inline tools with repo config

Explicit tools are installed first, then repo config is auto-detected. Repo-level versions take precedence in the working directory:

steps:
  - label: ":test_tube: Integration"
    plugins:
      - buildkite/setup-runtime#v1.0.0:
          tools:
            - "node@20"
    command: make integration

Hosted agent cache volumes

cache: ".buildkite/cache-volume"

steps:
  - label: ":golang: Test"
    plugins:
      - buildkite/setup-runtime#v1.0.0:
          tools:
            - "go@1.22"
    command: go test ./...

On Buildkite hosted agents, the plugin automatically detects the cache volume and uses /cache/bkcache/mise as MISE_DATA_DIR — no cache-dir config needed.

Configuration

tools (array of strings, optional)

Tools to install in tool@version format. These are installed and activated globally for the step regardless of repo config files.

auto-detect (boolean, default: true)

When true, the plugin also runs mise install from mise.toml, .mise.toml, or .tool-versions if present in the working directory.

version (string, default: latest)

Version of mise to install (e.g. 2026.2.11).

dir (string, optional)

Directory where mise install and mise env run. Defaults to the checkout directory. Useful for monorepos where tools are defined in a subdirectory.

cache-dir (string, optional)

Directory to use for MISE_DATA_DIR. On hosted agents with an attached cache volume this is detected automatically. Mainly useful on self-hosted agents with a persistent disk.

Tool-specific environment setup

The plugin automatically configures tool-specific environment variables after installation:

ToolEnvironment setup
goSets GOROOT, sets GOPATH if unset, prepends GOPATH/bin to PATH
javaSets JAVA_HOME (handles macOS Contents/Home layout)
nodeEnables corepack (yarn/pnpm available without separate install)
pythonSets PIP_REQUIRE_VIRTUALENV=0 if unset
rubySets GEM_HOME if unset, prepends GEM_HOME/bin to PATH
rustSets CARGO_HOME if unset, prepends CARGO_HOME/bin to PATH

All configured tools print their active version to the build log for verification.

Development

Run plugin checks locally:

docker run --rm -v "$PWD:/plugin" -w /plugin buildkite/plugin-linter --id buildkite/setup-runtime --path /plugin
docker run --rm -t -v "$PWD:/plugin" buildkite/plugin-tester:latest

License

MIT License. See LICENSE for details.

The plugins listed on this webpage are provided for informational purposes only. They have not undergone any formal security review or assessment. While we strive to provide useful resources, we cannot guarantee the safety, reliability, or integrity of these plugins. Users are strongly advised to conduct their own security evaluations before downloading, installing, or using any plugin. By using these plugins, you acknowledge and accept any risks associated with their use. We disclaim any liability for any harm or damages arising from the use of the plugins listed.

Start turning complexity into an advantage

Create an account to get started for free.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. CI/CD perspectives

Company

  1. About
  2. Careers
  3. Press
  4. Security
  5. Brand assets
  6. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for MLOps
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement
  6. Supplier Code of Conduct
  7. Modern Slavery Statement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2026