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:
You can use this tool via the Linter Plugin or 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
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.
- 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! ❤️
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
- Master is built and tested automatically, and pushes a new image to buildkite/plugin-linter on Docker Hub
MIT (see LICENSE)