Consolidate and rename CI workflows#497
Merged
ChrisonSimtian merged 3 commits intoJul 17, 2026
Merged
Conversation
Collapse the three per-OS build workflows and rename the hand-written ones for clarity. Behaviour is unchanged — same triggers, same required check. - build.yml (generated): Linux PR gate for PRs to main/release/support. Its job is still named `ubuntu-latest`, so the required status check and branch protection are untouched. - build-cross-platform.yml (generated): macOS + Windows in one workflow (a job per OS, via the attribute's params image list), gated to release intent — PRs to release/support and v* tag pushes only. Replaces macos-latest.yml + windows-latest.yml. - build-docs.yml: renamed from ubuntu-latest-docs.yml; still reports the `ubuntu-latest` check on docs-only PRs. - publish-packages-preview.yml / publish-packages-release.yml: renamed from preview.yml / release.yml. ReleaseWorkflow const in Build.CI.GitHubActions.cs updated to match the release workflow's new name (it gates CreateGitHubRelease). Regenerated the two generated workflows from build/Build.CI.GitHubActions.cs and updated the workflow-name references in README, CONTRIBUTING, architecture, branching-and-release, conventions, and release-and-versioning docs (also fixing some already-stale trigger descriptions). ADRs left as point-in-time records. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The build-status badges have been broken for a while: they pointed at the old per-OS workflow files and used `?branch=main` on `pull_request`-only workflows, which renders "no status" (badges track push/branch runs, not PR runs). - Headline CI badge now tracks publish-packages-preview (runs on every main push) — the reliable "is main healthy" signal. - Table badges point at the new workflows with query params matched to each trigger: build/build-cross-platform use event=pull_request; preview uses branch=main; release uses event=push. The two release-gated workflows read "no status" until the first release-branch PR / tag exists (accurate — no release cut yet). Owner stays Fallout-build/Fallout (consistent with the other badges); these resolve once this change is on upstream and a run has happened. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
build-docs read as if it builds documentation; it doesn't — it's the no-op that reports the required `ubuntu-latest` check on docs-only PRs so branch protection isn't blocked. build-skip names what it does. Updated the echo message and the README/CONTRIBUTING/architecture/conventions/release-and-versioning references. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Collaborator
Author
|
@dennisdoomen doing some tidy up, getting the naming aligned and making it more obvious what which workflow does. |
Collaborator
|
🏕️🤖 Stale reference (pre-existing file, not touched by this PR — flagging for a follow-up, not blocking): |
dennisdoomen
approved these changes
Jul 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cleans up
.github/workflows/— clearer names, one fewer file, and fixes the long-broken README build-status badges. No behaviour change to CI triggers or the required check.Workflows
Two generated build workflows (from
build/Build.CI.GitHubActions.cs) replace the three per-OS files:build.yml— Linux PR gate for PRs tomain/release/*/support/*. Job stays namedubuntu-latest, so the required status check and branch protection are untouched.build-cross-platform.yml— macOS + Windows in one workflow (a job per OS, via the attribute'sparamsimage list), gated to release intent — PRs torelease/*/support/*andv*tags only. Replacesmacos-latest.yml+windows-latest.yml.Hand-written workflows renamed for clarity:
ubuntu-latest-docs.yml→build-skip.yml— the no-op that reports theubuntu-latestcheck on docs-only PRs (it does not build docs; the old name implied it did).preview.yml→publish-packages-preview.ymlrelease.yml→publish-packages-release.yml—ReleaseWorkflowconst inBuild.CI.GitHubActions.csupdated to match (it gatesCreateGitHubRelease).README build-status fix
Badges had been broken for a while: they used
?branch=mainonpull_request-only workflows (always renders "no status"). Now the headline CI badge trackspublish-packages-preview(runs on everymainpush), and table badges use trigger-matched query params. Owner staysFallout-build/Fallout.Why it's safe
ubuntu-latest, whichbuild.ymlstill emits.Verification
dotnet fallout Test Packlocally → 108 tests pass, 0 fail; all 24 packages pack.mainand exercised end-to-end:build.yml(real Test+Pack) andbuild-skip.ymlboth green;publish-packages-previewbuild/test/pack green (its publish step 403s only because a fork can't push to this org's package feed — pre-existing, resolves here on upstream).