Introducing Buildkite Builder

Hello, Buildkite community!

At Gusto, we use Buildkite extensively for all of our CI needs. Because we have a monolith, we’ve had to build tooling for dealing with a very large and complex/dynamic pipeline. Today, we are open sourcing our tool, Buildkite Builder.

In short, this toolkit allows you to build your pipeline with a nice, intuitive Ruby DSL. Even if your project doesn’t use Ruby, you can still use this tool to just build and manage a pipeline. It’s still better than dealing with a large YAML file.

We’ll spend the next several days working on better documentation, but if you’re one of those folks who like to spelunking around in code then go for it! Here’s some things that you can do with Buildkite Builder:

  • Manage ruby files instead of YAML files.
  • Break up your pipeline definition into several files using our Step Templates.
  • Generate, add, or remove steps dynamically. No more static pipelines, or clunky intermediate steps using plugins.
  • Use Processors (think middleware) to augment your pipeline.
  • Something cool that we do is skip certain steps in the pipeline when there’s no need to run those steps. We use GitHub API to determine if certain files change to for a PR build to determine whether or not a step needs to run.

I’m happy to answer questions you have here or in the GitHub repo Issues.

Cheers!

1 Like