We welcome contributions from the community to make Buildkite CLI, bk, project even better.
To get started with contributing, please follow these steps:
- Fork the repository.
- Create a feature branch with a nice name (
git checkout -b cli-new-feature) for your changes. - Install mise and run
mise install. - Install the local git hooks with
mise run hooks. - Write your code.
- Run the local checks before opening a pull request.
- Format the code with
mise run format. - Lint with
mise run lint. - Make sure the tests pass with
mise run test. - Run
mise run generateafter GraphQL changes. If you need to refreshschema.graphql, setBUILDKITE_GRAPHQL_TOKENfirst.
- Format the code with
- Commit your changes and push them to your forked repository.
- Submit a pull request with a detailed description of your changes and links to any relevant issues.
The team maintaining this codebase will review your PR and start a CI build for it. For security reasons, we don't automatically run CI against forked repos, and a human will review your PR prior to its CI running.
There is a continuous integration pipeline on Buildkite:
https://buildkite.com/buildkite/buildkite-cli
Builds on main include a block step to "Create a release". The step takes a tag name, then takes care of tagging the built commit.
New tags trigger the release pipeline:
https://buildkite.com/buildkite/buildkite-cli-release
This will prepare a new draft release on GitHub:
https://github.com/buildkite/cli/releases
To release, edit the draft and Publish release.
If you encounter any issues or have suggestions for improvements, please open an issue on the GitHub repository. Provide as much detail as possible, including steps to reproduce the issue.
If we're really dragging our feet on reviewing a PR, please feel free to ping us through GitHub or Slack, or get in touch with support@buildkite.com, and they can bug us to get things done :)
Happy contributing!