# `Pipette.DSL`
[🔗](https://github.com/tommeier/pipette-buildkite-plugin/blob/main/lib/pipette/dsl.ex#L1)

Declarative Buildkite pipeline definition DSL.

`use Pipette.DSL` in a module to define a pipeline with top-level
entities — branches, scopes, groups, steps, and triggers:

    defmodule MyApp.Pipeline do
      use Pipette.DSL

      branch "main", scopes: :all, disable: [:targeting]

      scope :api_code, files: ["apps/api/**"]

      group :api do
        label ":elixir: API"
        scope :api_code
        step :test, label: "Test", command: "mix test"
      end
    end

### Options

* `:extensions` (list of module that adopts `Spark.Dsl.Extension`) - A list of DSL extensions to add to the `Spark.Dsl`

* `:otp_app` (`t:atom/0`) - The otp_app to use for any application configurable options

* `:fragments` (list of `t:module/0`) - Fragments to include in the `Spark.Dsl`. See the fragments guide for more.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
