Skip to content

fix(e2e): anchor localize verify to the action ref it rewrites - #200

Merged
joshua-temple merged 1 commit into
mainfrom
fix/e2e-scenario-regression
Jun 17, 2026
Merged

joshua-temple merged 1 commit into
mainfrom
fix/e2e-scenario-regression

Conversation

@joshua-temple

Copy link
Copy Markdown
Collaborator

Problem

The dogfooded Orchestrate CI/CD e2e suite on main fails deterministically at the Cross-Repo Reusable-Workflow Callback scenario during repo staging:

failed to stage repo: failed to generate workflows: localize workflows:
localize verify (attempt 3) found un-localized refs: exit=1 err=<nil>

The post-localize verify greps for a bare stablekernel/cascade substring. That also matches the verbatim cross-repo callback ref stablekernel/cascade-example-artifact-a/.github/workflows/build-shared.yaml@main emitted by scenario 21. That ref is intentional and the sed leaves it untouched, so verify flagged it as un-localized and failed all three attempts.

This is a latent failure introduced when the cross-repo scenario landed; it is not caused by the two most recent merges (the PR-preview and hotfix-label changes both pass in isolation and in this run). The named suspects were red herrings.

Fix

Anchor the verify pattern to the exact ref the sed rewrites, stablekernel/cascade/.github/actions/. The trailing /.github/actions/ distinguishes the localizable action ref (slash after cascade) from the distinct cascade-example-artifact-a repo (hyphen after cascade). A sibling-repo callback is no longer mistaken for an un-localized ref.

Verification

  • Cross-Repo Reusable-Workflow Callback e2e scenario passes locally in Docker (act + gitea):
    --- PASS: TestMultiStepScenarios/Cross-Repo_Reusable-Workflow_Callback (18.59s)
  • The two recently-merged scenarios also pass: PR_Preview_Workflow and Hotfix_Conflict_Resolution.
  • New unit test TestUnlocalizedActionRefPattern_IgnoresCrossRepoCallback locks the verify pattern against the sibling-repo and same-repo cross-repo refs.
  • go build ./..., go test ./... (e2e harness), go vet, and golangci-lint run ./... pass on the changed code and the e2e module.

Note: internal/generate/TestNormalizeWorkflowPath_ActionlintClean fails on this machine with actionlint 1.7.12 resolving relative reusable-workflow paths against the repo root; it fails identically on pristine main and is unrelated to this change.

The post-localize verify grepped for a bare stablekernel/cascade substring,
which also matches the verbatim cross-repo callback ref
stablekernel/cascade-example-artifact-a/.github/workflows/...@main in the
cross-repo scenario. That ref is intentionally left untouched, so verify
flagged it as un-localized and failed repo staging after three attempts,
failing the e2e suite deterministically. Anchor the verify pattern to the
exact action ref the sed rewrites (stablekernel/cascade/.github/actions/)
so a sibling-repo callback is no longer mistaken for an un-localized ref.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple
joshua-temple merged commit d1649b1 into main Jun 17, 2026
7 checks passed
@joshua-temple
joshua-temple deleted the fix/e2e-scenario-regression branch June 17, 2026 03:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant