Skip to content

ci: repin example fleet to the rc under test before fan-out - #217

Merged
joshua-temple merged 2 commits into
mainfrom
ci/fleet-auto-repin
Jun 18, 2026
Merged

joshua-temple merged 2 commits into
mainfrom
ci/fleet-auto-repin

Conversation

@joshua-temple

Copy link
Copy Markdown
Collaborator

Problem

The Fleet E2E gate resolves the rc version and logs it as "version under test", but the dispatch-suite action passes no version, so each example suite installs whatever its manifest is statically pinned to. A fresh rc was therefore never validated by the fleet until someone manually repinned the repos - the label outran reality.

Fix

Add a repin job (needs: resolve) that runs before all suite jobs. It downloads the rc linux/amd64 binary, verifies cascade version matches the rc, then for each of the 8 cascade-example-* repos: clones main with the state token, sets the manifest cli_version to the rc, replaces any other in-repo rc-version refs, regenerates the workflows with the rc binary, and commits + pushes only if something changed (idempotent, DCO-signed via --no-gpg-sign since CI has no GPG key, [skip ci], force-with-lease). primary and independents now needs: [resolve, repin] (dependents inherits via primary), so no suite runs against a stale pin. Cloning fresh main + version-sed + regen preserves every hand-written suite feature; only generated workflows are rewritten. The gate summary now reflects the version actually pinned.

Verification

  • actionlint clean on fleet-e2e.yaml
  • Guardrails clean (cfa/dxe/delivery, em dashes, AI/process-speak)
  • Workflow-only change, so e2e is skipped and the Integration Gate passes
  • No generator/CLI change

The fleet gate logged the resolved rc as the version under test, but the suites installed whatever each repo's manifest was statically pinned to, so a fresh rc was never actually validated until a manual repin.

Add a repin job that downloads the rc binary, sets each example repo's manifest cli_version to the rc, replaces any other in-repo rc refs, regenerates the workflows against the rc, and pushes the result to each repo's main (idempotent, [skip ci], force-with-lease). All suite jobs now gate on repin so none run against a stale pin.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple
joshua-temple enabled auto-merge (squash) June 18, 2026 03:36
auto-merge was automatically disabled June 18, 2026 03:47

Pull request was closed

@joshua-temple joshua-temple reopened this Jun 18, 2026
Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple
joshua-temple merged commit 243b264 into main Jun 18, 2026
13 checks passed
@joshua-temple
joshua-temple deleted the ci/fleet-auto-repin branch June 18, 2026 03:51
@joshua-temple joshua-temple added the ci CI/CD pipeline and workflow changes label Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD pipeline and workflow changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant