Skip to content

feat(generate): fan out per-component hotfix and rollback workflows - #526

Merged
joshua-temple merged 1 commit into
mainfrom
feat/hotfix-rollback-generation
Jul 8, 2026
Merged

joshua-temple merged 1 commit into
mainfrom
feat/hotfix-rollback-generation

Conversation

@joshua-temple

Copy link
Copy Markdown
Collaborator

Problem

The hotfix and rollback runtimes accept --component, but the generated workflows do not carry it, so per-component hotfix and rollback cannot run end to end for a multi-component repo.

Fix

  • When a manifest declares components:, generate one hotfix-<name>.yaml and one rollback-<name>.yaml per component (mirroring the orchestrate and promote fan-out), each emitting --component <name> so the commands run with component-scoped state, refs, and tags.
  • No components: block generates the single hotfix/rollback workflows with no --component, byte-identical.
  • The generate and verify (Plan) paths share one fan-out helper each, so they cannot disagree.

Manually-dispatched hotfix/rollback fan out into per-component workflows, consistent with the shipped orchestrate and promote fan-out. The harness execution of a component's hotfix/rollback and the isolation-proof scenario are the next change.

Verification

go build ./..., go test ./... (2640 pass), go test ./... -race clean, golangci-lint run ./... clean; e2e module build+vet clean. Single-component byte-identical baseline gate green. New e2e scenario 53-component-hotfix-rollback-fanout.yaml (Per-Component Hotfix and Rollback Generation) passes locally in the act+gitea harness (24.9s): asserts each hotfix-<name>.yaml/rollback-<name>.yaml exists and emits --component, and that no repo-wide hotfix.yaml/rollback.yaml exists for a components manifest.

Refs #293, #294.

When a manifest declares components, generate one hotfix-<name>.yaml and one rollback-<name>.yaml per component, mirroring the per-component orchestrate and promote fan-out, each emitting --component <name> so the hotfix and rollback commands run with component-scoped state, refs, and tags. A manifest with no components block generates the single hotfix and rollback workflows with no --component, byte-identical. The generate and verify paths share one fan-out helper for each so they cannot disagree.

Refs #293, #294.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple
joshua-temple merged commit 948f454 into main Jul 8, 2026
20 checks passed
@joshua-temple
joshua-temple deleted the feat/hotfix-rollback-generation branch July 8, 2026 11:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant