Pipette.Pipeline (Pipette v0.5.1)

Copy Markdown View Source

Pipeline configuration struct.

Holds branches, scopes, groups, triggers, ignore patterns, pipeline-level config (env, secrets, cache), and force activation rules. Used internally by the engine — pipeline modules are defined via use Pipette.DSL and converted to this struct by Pipette.Info.to_pipeline/1.

Fields

  • :branches — list of Pipette.Branch policies controlling activation behavior on matching branches
  • :scopes — list of Pipette.Scope file-to-scope mappings
  • :groups — list of Pipette.Group step groups (the units of activation)
  • :triggers — list of Pipette.Trigger downstream pipeline triggers
  • :ignore — glob patterns for files that should not activate any group (e.g. ["docs/**", "*.md"]). When all changed files match these patterns, the pipeline returns :noop
  • :env — pipeline-level environment variables (map with atom or string keys)
  • :secrets — list of secret names to inject into the pipeline
  • :cache — cache configuration (keyword list, e.g. [paths: ["deps/"]])
  • :force_activate — map of environment variable names to groups to force-activate when the env var is set to "true" (e.g. %{"FORCE_DEPLOY" => [:web, :deploy]})

Summary

Types

t()

@type t() :: %Pipette.Pipeline{
  __spark_metadata__: term(),
  branches: [Pipette.Branch.t()],
  cache: keyword() | nil,
  env: map() | nil,
  force_activate: %{required(String.t()) => [atom()] | :all},
  groups: [Pipette.Group.t()],
  ignore: [String.t()],
  scopes: [Pipette.Scope.t()],
  secrets: [String.t()] | nil,
  triggers: [Pipette.Trigger.t()]
}