Skip to content

IONOS(ci): restore push builds on the per-major dev lanes (HDNEXT-2144) - #312

Merged
printminion-co merged 1 commit into
ionos-dev-v32from
mk/ci/restore-push-builds-v32
Aug 18, 2026
Merged

IONOS(ci): restore push builds on the per-major dev lanes (HDNEXT-2144)#312
printminion-co merged 1 commit into
ionos-dev-v32from
mk/ci/restore-push-builds-v32

Conversation

@printminion-co

Copy link
Copy Markdown

Summary

This lane has never built, at all. ionos-dev-v32 has zero CI runs of any kind, ever — despite a push on 2026-08-17.

The cause: on: push: branches: names unsuffixed ionos-dev and ionos-stable. GitHub evaluates on: from the pushed branch's own copy of the file, and this copy lives on ionos-dev-v32, which the list does not match.

Branch CI runs Last push
ionos-dev-v32 zero, of any kind, ever 2026-08-17
ionos-dev-v33 only pull_request, on 2026-07-13 2026-08-17
ionos-dev-v31 fires correctly on push 2026-08-14
ionos-dev-v30 fires correctly on push 2026-08-03

Both broken lanes carry a byte-identical copy of the workflow (blob 59393db3830e, shared with rc/web-5), so this PR applies the identical patch to ionos-dev-v32 that #311 applies to ionos-dev-v33. Each branch needs its own, since its own copy is the one GitHub reads.

What this changes

Two build-side gates only:

  1. on: push: branches:ionos-dev/ionos-stable become ionos-dev-v*/ionos-stable-v*.
  2. concurrency: group — the unmatched branch fell through to head_ref || ref_name with cancel-in-progress: true, so consecutive pushes cancelled each other instead of each taking a unique run_id key.

Both now match the shape already proven on ionos-dev-v31.

What this deliberately does NOT change

The if: conditions on upload-to-artifactory, on Push artifact to ghcr.io and on trigger-remote-dev-workflow list the same unsuffixed names, and are left untouched. After this PR a push runs prepare-matrix, build-apps and hidrive-next-build, and all three of those stay skipped — the lane builds and tests but publishes nothing and triggers nothing.

Widening the publish-side gates needs the derived routing and the major assertion first, because trigger-remote-dev-workflow posts --form ref="main" — the v30 lane. A v32 build reaching that is exactly the 2026-07-29 accident. That work belongs to #195.

Known hazard, pre-existing and not introduced here

upload-to-artifactory and the ghcr push also fire on workflow_dispatch, bypassing the branch list — and ARTIFACTORY_STAGE_PREFIX has no arm matching ionos-dev-v32, so it stays at its dev default, the unsuffixed ionos-dev (v30) lane's path. Clicking "Run workflow" on this lane therefore uploads a v32 artifact into v30's path. True today, unchanged here; the fix is to derive the stage prefix from the lane, tracked in #202.

Verification

Opening this PR builds the branch via the pull_request paths filter — the first time this lane has ever been built. After merge, the next push to ionos-dev-v32 should start a run; that is the real proof.

The `on: push: branches:` list named unsuffixed `ionos-dev` and
`ionos-stable`. GitHub evaluates the `on:` block from the pushed branch's
own copy of the file, and this copy lives on `ionos-dev-v32`, which the
list does not match — so pushes to this lane started no run at all.

Observed: `ionos-dev-v32` has zero CI runs of any kind, ever, despite a
push on 2026-08-17. `ionos-dev-v33` is in the same state, fixed by the
same change on its own branch.

Glob the two entries so a per-major lane matches its own copy, and apply
the same shape to the concurrency group, where the unmatched branch fell
through to `head_ref || ref_name` with `cancel-in-progress: true` and so
made consecutive pushes to this lane cancel each other instead of each
taking a unique `run_id` key.

Deliberately limited to the build-side gates. The `if:` conditions on
`upload-to-artifactory`, on the ghcr push and on
`trigger-remote-dev-workflow` list the same unsuffixed names and are left
untouched, so this lane builds and tests but still publishes nothing and
triggers nothing. Widening those is a separate change that needs the
derived routing and the major assertion in place first: the trigger step
posts `--form ref="main"`, which is the v30 lane, and that is precisely
the 2026-07-29 accident.

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
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