Skip to content

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

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

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

Conversation

@printminion-co

Copy link
Copy Markdown

Summary

This lane has not been building on push. The on: push: branches: list 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-v33 — which the list does not match. So a push here starts no run.

Observed:

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

A month of commits on this lane — including the simplenavigation submodule work — has never been built.

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 to this lane cancelled each other instead of each taking a unique run_id key.

Both now match the shape already proven on ionos-dev-v31, which is the branch whose pushes do build.

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 to this lane runs prepare-matrix, build-apps and hidrive-next-build, and all three of those jobs stay skipped — the lane builds and tests but publishes nothing and triggers nothing.

That separation is the point. Widening the publish-side gates needs the derived routing and the major assertion in place first, because trigger-remote-dev-workflow posts --form ref="main" — the v30 lane. A v33 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 entirely — and ARTIFACTORY_STAGE_PREFIX has no arm matching ionos-dev-v33, so it stays at its dev default, which is the unsuffixed ionos-dev (v30) lane's path. So clicking "Run workflow" on this lane uploads a v33 artifact into v30's path. That is true today and unchanged by this PR; 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, which also confirms the lane builds at all after a month. After merge, the next push to ionos-dev-v33 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-v33`, 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, and
`ionos-dev-v33`'s only runs were `pull_request` on 2026-07-13, while both
received pushes on 2026-08-17. A month of commits on this lane, including
the simplenavigation submodule work, has never been built.

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