Pipette.Step (Pipette v0.5.1)

Copy Markdown View Source

Buildkite command step.

Represents a single command step within a group. Steps map directly to Buildkite command steps and support all standard attributes like retries, timeouts, concurrency controls, and plugins.

Fields

  • :name (atom()) — unique identifier within the parent group
  • :label (String.t() | nil) — display label in Buildkite UI

  • :command (String.t() | [String.t()] | nil) — shell command(s) to run

  • :env (map() | nil) — environment variables for this step

  • :agents (map() | nil) — agent targeting rules

  • :plugins (list() | nil) — Buildkite plugins to apply

  • :secrets ([String.t()] | nil) — secret names to inject

  • :depends_on — step-level dependency (atom, tuple, or list)
  • :timeout_in_minutes (pos_integer() | nil) — step timeout

  • :concurrency (pos_integer() | nil) — max concurrent jobs

  • :concurrency_group (String.t() | nil) — concurrency group name

  • :concurrency_method (:ordered | :eager | nil) — concurrency method

  • :soft_fail (boolean() | list() | nil) — soft fail configuration

  • :retry (map() | nil) — retry configuration

  • :artifact_paths (String.t() | [String.t()] | nil) — artifact paths

  • :parallelism (pos_integer() | nil) — parallel job count

  • :priority (integer() | nil) — job priority

  • :skip (boolean() | String.t() | nil) — skip condition

  • :cancel_on_build_failing (boolean() | nil) — cancel if build fails

  • :allow_dependency_failure (boolean() | nil) — run even if deps fail

  • :only (String.t() | [String.t()] | nil) — branch pattern(s) restricting this step to specific branches. The step is excluded from the pipeline YAML when the current branch doesn't match.

  • :branches (String.t() | nil) — branch filter

  • :if_condition (String.t() | nil) — conditional expression

  • :matrix (list() | map() | nil) — matrix build configuration

  • :key (String.t() | nil) — explicit Buildkite step key

Example

%Pipette.Step{
  name: :test,
  label: ":elixir: Test",
  command: "mix test",
  timeout_in_minutes: 15,
  retry: %{automatic: [%{exit_status: -1, limit: 2}]}
}

Summary

Types

t()

@type t() :: %Pipette.Step{
  __identifier__: term(),
  __spark_metadata__: term(),
  agents: map() | nil,
  allow_dependency_failure: boolean() | nil,
  artifact_paths: String.t() | [String.t()] | nil,
  branches: String.t() | nil,
  cancel_on_build_failing: boolean() | nil,
  command: String.t() | [String.t()] | nil,
  concurrency: pos_integer() | nil,
  concurrency_group: String.t() | nil,
  concurrency_method: :ordered | :eager | nil,
  depends_on:
    atom()
    | {atom(), atom()}
    | [atom() | {atom(), atom()}]
    | String.t()
    | [String.t()]
    | nil,
  env: map() | nil,
  if_condition: String.t() | nil,
  key: String.t() | nil,
  label: String.t() | nil,
  matrix: list() | map() | nil,
  name: atom(),
  notify: [map()] | nil,
  only: String.t() | [String.t()] | nil,
  parallelism: pos_integer() | nil,
  plugins: list() | nil,
  priority: integer() | nil,
  retry: map() | nil,
  secrets: [String.t()] | nil,
  skip: boolean() | String.t() | nil,
  soft_fail: boolean() | list() | nil,
  timeout_in_minutes: pos_integer() | nil
}