Skip to content

generate per-component promotion workflows and concurrency groups #291

Description

@joshua-temple

Problem / why

Promotion workflows are generated globally (internal/promote/promote.go emission). For a
multi-component manifest, like orchestrate (V3), promotion must fan out to one file per
component so each component's promotion runs and concurrency are isolated. A single-component
manifest keeps promote.yaml.

Scope (firm intent, to be refined after P1)

  • Emit one promote workflow file per component (promote-<name>.yaml; the single-component
    default keeps promote.yaml).
  • Per-component concurrency group, replicating the V3 / external pattern.
  • Reserve the matrix for legs WITHIN a component (the existing per-environment / per-promotion
    matrix), not across components.

Files / areas touched

  • internal/promote/promote.go (emission), internal/generate/command.go (fan-out).

Tests and coverage required

  • Generator unit tests: one promote file per component, each with its own concurrency group.
  • actionlint-clean on generated multi-component promote workflows.
  • A single-component regression test that promote.yaml is unchanged.

Acceptance criteria

  • One promote workflow per component, each with a distinct concurrency group, actionlint clean.
  • Single-component promote output is unchanged.

Dependencies

Blocked by P1.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions