Skip to content

v0.2.0 — Pipette.DSL convenience constructors

Choose a tag to compare

@tommeier tommeier released this 30 Mar 04:16
· 40 commits to main since this release

Added

  • Pipette.DSL module — optional constructor functions for cleaner pipeline definitions:

    import Pipette.DSL
    
    group(:api, label: ":elixir: API", scope: :api_code, steps: [
      step(:test, label: "Test", command: "mix test", timeout_in_minutes: 15),
      step(:lint, label: "Lint", command: "mix credo", timeout_in_minutes: 10)
    ])

    These are plain functions wrapping struct!/2 — zero macros, zero metaprogramming. Unknown keys raise KeyError for typo detection. The raw %Pipette.Step{} structs continue to work.

  • Production example guide — realistic 5-group monorepo pipeline with deploy chains, GCP WIF plugins, retry policies, agent targeting, secrets, concurrency groups, and cross-group step dependencies

  • Updated all guides to use DSL syntax with links to raw struct examples

Install

Mix.install([{:buildkite_pipette, "~> 0.2.0"}])

Or as a Buildkite plugin:

plugins:
  - tommeier/pipette#v0.2.0:
      pipeline: .buildkite/pipeline.exs