Buildkite Pipeline Generator

Generate `.buildkite/pipeline.yml` with dynamic steps, manual unblocks, triggers, and parallelism.

Buildkite Pipeline

Pipeline Steps

.buildkite/pipeline.yml
1

Understanding Buildkite Configuration

What is pipeline.yml?

Buildkite is a hybrid CI/CD platform where you host your own build agents, but Buildkite orchestrates the pipelines. Your pipeline configuration is defined in a .buildkite/pipeline.yml file.

Step Types

Buildkite has several different types of steps that allow for complex orchestrations:

  • Command Step (command): Runs one or more shell commands on one of your agents. This is where your actual build/test logic lives.
  • Wait Step (wait): Pauses the execution of the pipeline until all previous steps have finished successfully. Often used before deployment steps.
  • Block Step (block): Pauses the pipeline and waits for human interaction (e.g., clicking a button in the UI) before continuing. Perfect for "Deploy to Production" gates.
  • Trigger Step (trigger): Triggers a completely different Buildkite pipeline, optionally passing environment variables to it. Useful for monorepos or microservice architectures.
  • Parallelism and Agents

  • Parallelism: You can easily run the same command across multiple agents simultaneously by setting the parallelism attribute. Buildkite will split the job into N parallel tasks (often used with test splitting).
  • Agents: You can target specific agents using the agents rule. For example, queue=mac ensures that the step only runs on an agent that is tagged with the Mac queue.
  • Best Practices

  • Dynamic Pipelines: Buildkite excels at dynamic pipelines. You can have a script generate the YAML at runtime and upload it using buildkite-agent pipeline upload.
  • Emojis: Buildkite loves emojis. Use :rocket: or :hammer: in your step labels to make the UI much easier to read!