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

Buildkite Plugin Linter Build status

A linter for your Buildkite plugins, used by the plugin-linter Buildkite plugin

Features:

  • Checks for a plugin.yml file (and validates it against the plugin.yml JSON schema)
  • Checks that all readme examples match the plugin’s schema
  • Check the readme version numbers are up-to-date with the latest plugin version
  • Machine-parseable TAP output

Further reading and tools:

Configuration

Options available on the executable as long-form switches (--OPTION) can also be passed through as environment variables with the PLUGIN_ prefix (PLUGIN_OPTION).

Required

id (string, PLUGIN_ID)

This is the id of the plugin to be validated. It is used to search for and validate examples.

path (string, PLUGIN_PATH)

Where the plugin to lint can be found.

Optional

readme (string, PLUGIN_README)

The name of the file to validate examples on.

Default: README.md

skip-invalid (boolean, PLUGIN_SKIP_INVALID)

Invalid versions are normally reported as failures, turning on this option would change that behaviour.

Default: false

Usage

You should use this tool via the Linter Plugin in your plugin’s pipeline.

Alternatively, you can add it to your docker-compose.yml file and then use docker-compose run --rm lint:

services:
  lint:
    image: buildkite/plugin-linter
    command: ['--id', 'my-org/my-plugin']
    volumes:
      - ".:/plugin"

or you can run it locally on the command line:

docker run \
  -it \
  --rm \
  -v "$(pwd):/plugin" \
  buildkite/plugin-linter \
    --id my-org/my-plugin \
    --path README.md

If your plugin examples use a full git URL, such as ssh://git@github.com/my-org/example-buildkite-plugin, then you should specify the full git URL in the id argument.

Roadmap / TODO

  • Check that all the config options in the readme exist in the configuration schema
  • Check that all the options in the configuration schema exist in the readme
  • Warn about undocumented config options found in source code

Contributions welcome! ❤️

Developing/testing

If you have Node installed:

npm install
npm test
bin/lint --help

Code style is validated using JavaScript Standard Style.

To run the tests using Docker Compose:

# Run the tests
docker-compose run --rm linter
# Run the lint command
docker-compose run --rm linter lint --help

Releasing

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