Split CI one workflow per platform and add status badges - #39
Merged
Conversation
GitHub's workflow badges are workflow-scoped, so a single CI workflow can only ever produce one badge. Splitting Apple, Linux and Android into their own files makes the README state which platforms are actually proven.
🦋 Changeset detectedLatest commit: 4851118 The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
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.
Splits
ci.ymlinto one workflow per platform and puts a status badge for each in theREADME. No source change, no release.
Why split rather than add one badge
GitHub's Actions status badges are workflow-scoped — there is no per-job filter. A
single
CIworkflow containing the Apple, Linux and Android jobs can therefore only everproduce one badge that says "CI", which tells a reader nothing about which platforms
are proven. One workflow per platform is what makes the badge row meaningful:
ci-apple.yml(name: Apple)test— macOS, Mac Catalyst, iOS Simulatorci-linux.yml(name: Linux)linux_test—swift:latestcontainerci-android.yml(name: Android)linux-android—skiptools/swift-android-action@v2Jobs, triggers, matrices, timeouts and steps are carried over unchanged. Each workflow
keeps its own
concurrencygroup — the key is${{ github.workflow }}, so they stayindependent automatically.
This repo is the natural place to start: it is the only one testing more than one
platform today, and all three legs are green on
main, so all three badges are borngreen. As the Linux/Android legs land elsewhere, each brings a workflow file and a badge
with it, and the row grows into a live scoreboard rather than a static claim. Nothing is
asserted that is not tested.
Notes
mainhas no branch protection, so no required status check is named after the oldci.ymland nothing breaks by renaming it.mainuntil this merges, so the badges willread "no status" until then. Self-healing on the first push after merge.
Part of the platform-badge convention (GER-2175); the same treatment is planned for
template-swiftso future packages inherit it.🤖 Generated with Claude Code