Skip to content
GitmoapAPIBeta
Schema

Stage

A stage of the pipeline, holding steps. Stages run in the order they are listed.

Shape

  • idStageId (string)
  • namestring
  • stage_typeStageTypesourcebuildtestpublishdeploynotifycustomThe pipeline stage a capability belongs to. Maps verbatim to the stage_type field of a capability in gitmoap-provider.yaml.
  • barrier_modeBarrierModestrictlenientoptionalWhen a stage is allowed to start. strict waits for every step in every earlier stage to finish, so a failure anywhere stops what follows. lenient waits only for the steps a given step actually depends on, so an unrelated branch failing does not block it. strict is the default.
  • nodesarray of Nodeoptional
    • The Node schema
    • capability_idCapabilityId (string)
    • idNodeId (string)
    • namestring
    • allow_failurebooleanoptionalWhen true, this node's failure (a non-zero exit or a timeout, after any retries) is non-blocking: it does not fail the enclosing stage or the run. The node's transitive dependents — which can never receive its output — are skipped, while independent branches and later stages keep running. A run whose only failures were allow_failure nodes finishes succeeded_with_warnings.
    • approvalManualApproval or nulloptionalHolds this step until it is approved. A step deploying to an environment that requires approval is held as well, whether or not this is set.
      • The ManualApproval schema
      • approversarray of ApproverRefoptional
      • requiredinteger · int32 or nulloptional0–∞Distinct approvals needed, 1–10. On a gated environment the larger of this and the environment's own count applies.
    • changesarray of string or nulloptionalPath globs that decide whether this step runs: when none of them matches a path the push changed, the step is skipped. When absent and service is set, the service's own path globs apply.
    • configobjectoptionalThe step's provider-specific configuration, checked against the capability's config_schema when the run starts.
    • connectionProviderConnectionName (string) or nulloptionalThe provider connection to use, by name (e.g. aws-prod). When absent, the step uses the provider's only connection available to the repository, if there is exactly one.
    • cpustring or nulloptional
    • environmentEnvironmentSlug (string) or nulloptionalThe environment this step deploys to, by slug. It is looked up on the repository and then on each group above it when the run starts.
    • matrixMatrixSpec or nulloptionalRuns this step once for every combination of the named dimensions' values. At most 100 copies.
      • The MatrixSpec schema
      • dimensionsobjectEach dimension's name and its list of values. The step's config reads the current value of a dimension with {"$matrix": "<dimension>"}.
    • max_retriesinteger · int32optional0–∞
    • memorystring or nulloptional
    • resource_groupNodeResourceGroup or nulloptionalKeeps this step from running at the same time as any other step, in any of your organization's pipelines, that names the same resource group — a Terraform state, a shared staging database, a fragile external sandbox. The cancel_previous mode is not accepted here.
      • The NodeResourceGroup schema
      • nameResourceGroupName (string)
      • max_wait_secondsinteger · int32 or nulloptional0–∞
      • modeConcurrencyModequeueskipcancel_previousor nulloptionalWhat happens when a run wants to deploy while another run holds the lock: queue (the default) waits its turn, skip skips the step, and cancel_previous cancels the other run. cancel_previous is available on environments only, not on a step's resource group.
    • retry_delay_secondsinteger · int32optional0–∞
    • serviceServiceSlug (string) or nulloptionalThe catalog service this step acts on, by slug. Optional when the repository holds exactly one service, which is then implied; required when it holds more.
    • timeout_secondsinteger · int32 or nulloptional0–∞
    • variables_fromEnvironmentSlug (string) or nulloptionalAn environment whose plain variables this step reads, by slug, without deploying there — for a build that bakes the environment's settings in. The step receives the environment's non-secret variables and nothing else: no approval, no lock, no secrets, and no deployment is recorded. A step may name this or environment, not both.
    • versionProviderVersion (string) or nulloptionalPins a specific provider version. When absent, the provider's default version for this repository is used, as it stands when the run starts.

Example

Synthesized example
{
"id": "id-43fa",
"name": "payments-api",
"stage_type": "source",
"barrier_mode": "strict",
"nodes": [
{
"capability_id": "90503aee-9e78-43f0-8c5f-2687f1ddb190",
"id": "id-0a56",
"name": "payments-api"
}
]
}

Graph

Used by