Skip to content

Consolidate and rename CI workflows#497

Merged
ChrisonSimtian merged 3 commits into
Fallout-build:mainfrom
ChrisonSimtian:ci/consolidate-build-workflows
Jul 17, 2026
Merged

Consolidate and rename CI workflows#497
ChrisonSimtian merged 3 commits into
Fallout-build:mainfrom
ChrisonSimtian:ci/consolidate-build-workflows

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Collaborator

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 to main/release/*/support/*. Job stays named ubuntu-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's params image list), gated to release intent — PRs to release/*/support/* and v* tags only. Replaces macos-latest.yml + windows-latest.yml.

Hand-written workflows renamed for clarity:

  • ubuntu-latest-docs.ymlbuild-skip.yml — the no-op that reports the ubuntu-latest check on docs-only PRs (it does not build docs; the old name implied it did).
  • preview.ymlpublish-packages-preview.yml
  • release.ymlpublish-packages-release.ymlReleaseWorkflow const in Build.CI.GitHubActions.cs updated to match (it gates CreateGitHubRelease).

README build-status fix

Badges had been broken for a while: they used ?branch=main on pull_request-only workflows (always renders "no status"). Now the headline CI badge tracks publish-packages-preview (runs on every main push), and table badges use trigger-matched query params. Owner stays Fallout-build/Fallout.

Why it's safe

  • Required check unchanged — branch protection keys on the job name ubuntu-latest, which build.yml still emits.
  • Triggers identical to before — rename + consolidation, not a behaviour change.
  • ADRs left as point-in-time records; only living docs updated.

Verification

  • dotnet fallout Test Pack locally → 108 tests pass, 0 fail; all 24 packages pack.
  • Merged to the fork's main and exercised end-to-end: build.yml (real Test+Pack) and build-skip.yml both green; publish-packages-preview build/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).
  • Both generated workflows freshly regenerated from the attributes (not hand-edited); all 5 workflow YAMLs parse clean.

ChrisonSimtian and others added 3 commits July 12, 2026 22:26
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>
@ChrisonSimtian ChrisonSimtian added target/vCurrent Targets the current version skip-changelog labels Jul 17, 2026
@ChrisonSimtian ChrisonSimtian self-assigned this Jul 17, 2026
@ChrisonSimtian

Copy link
Copy Markdown
Collaborator Author

@dennisdoomen doing some tidy up, getting the naming aligned and making it more obvious what which workflow does.
I'll do a follow up PR at some point to get the remaining workflows into Fallout rather than having handcrafted ymls

@dennisdoomen

Copy link
Copy Markdown
Collaborator

🏕️🤖 Stale reference (pre-existing file, not touched by this PR — flagging for a follow-up, not blocking): build/Build.cs lines 48 and 195 still mention .github/workflows/preview.yml and release.yml. This PR renamed those to publish-packages-preview.yml and publish-packages-release.yml everywhere else, but Build.cs wasnt part of the diff so these two comments were missed.

@ITaluone ITaluone left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIce!

@ChrisonSimtian
ChrisonSimtian merged commit 67b792f into Fallout-build:main Jul 17, 2026
2 checks passed
@ChrisonSimtian
ChrisonSimtian deleted the ci/consolidate-build-workflows branch July 17, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog target/vCurrent Targets the current version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants