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

Buildkite Plugin Tester Build status

A base Docker image for testing Buildkite plugins with BATS. It includes:

Your plugin’s code is expected to be mounted to /plugin, and by default the image will run the command bats tests/.

Usage

For example, say you had a plugin called git-logger, which took a commit option, and called git log via a command hook:

steps:
  - plugins:
      - foo/git-logger#v1.0.0:
          commit: "abc123"

To test this, you’d add the following docker-compose.yml file:

version: '3.7'
services:
  tests:
    image: buildkite/plugin-tester:v4.1.1
    volumes:
      - ".:/plugin"

And you’d create the following test in tests/command.bats:

#!/usr/bin/env bats

setup() {
  load "$BATS_PLUGIN_PATH/load.bash"

  # Uncomment to enable stub debugging
  # export GIT_STUB_DEBUG=/dev/tty
}

@test "calls git log" {
  export BUILDKITE_PLUGIN_GIT_LOGGER_COMMIT="abc123"

  stub git "log abc123 : echo git log output"

  run $PWD/hooks/command

  assert_output --partial "git log output"
  assert_success
  unstub git
}

Now you can run your tests locally:

docker-compose run --rm tests

To set up it up in Buildkite, create a .buildkite/pipeline.yml file that uses the docker-compose Buildkite Plugin to run that same command on CI, for example:

steps:
  - plugins:
      - docker-compose#x.y.z:
          run: tests

Developing

To test plugin-tester itself, use the following command:

docker-compose run --rm tests

Releasing

  1. Create a new GitHub Release. Docker Hub images are automatically pushed when the new tag is created.
  2. Update the README.md example line’s version number (image: buildkite/plugin-tester#vX.Y.Z)

License

MIT (see LICENSE)

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 with a 30-day free trial. No credit card required.

Buildkite Pipelines

Platform

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

Hosting options

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

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Webinars
  5. Plugins
  6. Case studies
  7. Events
  8. Migration Services
  9. Comparisons

Company

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

Solutions

  1. Replace Jenkins
  2. Workflows for AI/ML
  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

Support

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