Skip to content

feat(ci-cd)!: default runs-on to the GitHub-hosted runner - #114

Merged
Laffs2k5 merged 2 commits into
mainfrom
chore/default-runs-on-to-github-hosted
Oct 5, 2026
Merged

Laffs2k5 merged 2 commits into
mainfrom
chore/default-runs-on-to-github-hosted

Conversation

@Laffs2k5

@Laffs2k5 Laffs2k5 commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Closes the last loose end from the self-hosted runner migration: the runs-on input still fell back to the pool that is about to be torn down.

Problem

All three reusable workflows declared runs-on with default: "", and each job resolved it as:

runs-on: ${{ inputs.runs-on || fromJSON('["self-hosted", "dsb-builder", "linux", "x64"]') }}

Once the dsb-builder VMSS is scaled to 0 and deleted, that fallback points at a runner group with no runners. A caller that omits the input would queue indefinitely rather than fail — with nothing in the run output to explain why.

Change

  • default: "" → default: "builder-app-platform-ghr-ubuntu-large" in ci-cd-default.yml, ci-cd-build-deploy-maven-lib.yml and maven-artifacts-pruner.yml.
  • The fromJSON([...]) fallback is removed from all nine job-level expressions rather than re-pointed, so the dead pool is not referenced anywhere in the workflows.
  • Per-app overrides (matrix.app-vars.runs-on) are untouched and still win over the global input.
  • Input descriptions and the two now-stale # ... else the self-hosted default comments updated to match.

Blast radius: none today

Every caller in the org passes runs-on explicitly — 72/72 caller workflow files across 69 active repos, verified 2026-10-05 by fetching every .github/workflows/ file in dsb-norge and checking the input. So no existing pipeline changes behaviour. What changes is what a new repo gets when it omits the line, which is the point of the change.

This is the Phase 6 default flip described in github-hosted-runners-implementation-plan.md.

Breaking change

Marked ! because a caller relying on the empty default to reach the self-hosted pool must now pass runs-on explicitly. No such caller exists in dsb-norge, and external consumers of this public repo could never have used the old default — the pool was DSB-internal.

Release

Releases here are git tags. After merge this needs a new v4.21 tag and the moving v4 tag advanced, otherwise callers on @v4 won't pick it up.

Review notes

  • Nothing to run — these workflows have no CI of their own, and runs-on only resolves at call time.
  • Worth eyeballing that all nine job expressions changed and none were missed: grep -rn "dsb-builder" .github/workflows/ should return only the three explanatory comments.
  • The CLAUDE.md touch-up is a separate commit from the functional change.

🤖 Generated with Claude Code

Laffs2k5 and others added 2 commits October 5, 2026 12:08
The 'runs-on' input defaulted to an empty string, which each job resolved to
the self-hosted pool ["self-hosted", "dsb-builder", "linux", "x64"] via a
fromJSON fallback. That pool is being decommissioned, so the fallback is about
to point at a runner group with no runners: a caller that omits the input would
queue indefinitely instead of failing, with nothing in the run to explain why.

Every caller in the org set the input explicitly during the migration (72/72 as
of 2026-10-05), so flipping the default changes no existing pipeline. It does
change what a *new* repo gets when it omits the line, which is the point.

Remove the fromJSON fallback from all nine job-level expressions rather than
re-point it, so the dead pool is not referenced anywhere. Per-app overrides via
an 'apps' entry are unaffected and still win over the global input.

BREAKING CHANGE: callers that relied on the empty default to reach the
self-hosted pool must now pass runs-on explicitly. No such caller exists in
dsb-norge; external consumers of this public repo could never have used the old
default, since the pool was DSB-internal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Keeps the AI-assistant context in step with the runs-on default flip. Separate
commit because this is assistant configuration, not part of the functional
change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Laffs2k5
Laffs2k5 marked this pull request as ready for review October 5, 2026 10:19
@Laffs2k5
Laffs2k5 requested a review from baltom October 5, 2026 10:19
@Laffs2k5
Laffs2k5 enabled auto-merge (rebase) October 5, 2026 10:19
@Laffs2k5
Laffs2k5 merged commit f22f09e into main Oct 5, 2026
4 checks passed
@Laffs2k5
Laffs2k5 deleted the chore/default-runs-on-to-github-hosted branch October 5, 2026 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants