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

Buildkite trigger step that starts another pipeline.

Trigger steps allow one pipeline to kick off a build in a separate
Buildkite pipeline, optionally passing build parameters and
controlling whether to wait for completion.

## Fields

  * `:name` (`atom()`) — unique identifier for this trigger
  * `:label` (`String.t() | nil`) — display label in the Buildkite UI
  * `:pipeline` (`String.t()`) — slug of the Buildkite pipeline to
    trigger (e.g. `"deploy-production"`)
  * `:depends_on` (`atom() | [atom()] | nil`) — group(s) that must
    complete before triggering
  * `:only` (`String.t() | [String.t()] | nil`) — branch pattern(s)
    restricting when this trigger fires
  * `:build` (`map() | nil`) — build parameters to pass
    (e.g. `%{message: "Deploy", env: %{DEPLOY_ENV: "production"}}`)
  * `:async` (`boolean() | nil`) — when `true`, don't wait for the
    triggered build to complete
  * `:key` (`String.t() | nil`) — explicit Buildkite step key

## Example

    %Pipette.Trigger{
      name: :deploy,
      label: ":rocket: Deploy",
      pipeline: "deploy-production",
      depends_on: [:api, :web],
      only: "main",
      async: true
    }

# `t`

```elixir
@type t() :: %Pipette.Trigger{
  __identifier__: term(),
  __spark_metadata__: term(),
  async: boolean() | nil,
  build: map() | nil,
  depends_on: atom() | [atom()] | nil,
  key: String.t() | nil,
  label: String.t() | nil,
  name: atom(),
  only: String.t() | [String.t()] | nil,
  pipeline: String.t()
}
```

---

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