Skip to content

Give each platform its own CI workflow and badge - #53

Merged
germ-mark merged 3 commits into
port/service-endpoint-libcfrom
ci/platform-badges
Aug 18, 2026
Merged

Give each platform its own CI workflow and badge#53
germ-mark merged 3 commits into
port/service-endpoint-libcfrom
ci/platform-badges

Conversation

@germ-mark

@germ-mark germ-mark commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Splits ci.yml into ci-apple.yml / ci-linux.yml / ci-android.yml, each
name:d for its platform, and puts all three badges in the README. No source
change, no release.

Stacked on #55 — the Linux and Android legs cannot pass without it, since
ServiceEndpoint.swift imports Network. Rebase onto main once that merges.

Why

GitHub's Actions status badges are workflow-scoped — there is no per-job
filter, so a badge can only ever be as specific as the workflow it points at. A
workflow called CI produces a badge that says "CI", which tells a reader
nothing about which platforms are covered. Worse, an Apple-only badge on a
package being ported to Android reads as a portability claim it isn't making:
this repo has been failing to compile for Linux and Android since the PDS
hardening in #51, and nothing in CI said so.

The Apple job matrix and steps are unchanged. The Linux and Android legs are
copied from GermConvenience, with two deliberate divergences:

  • push CI runs only on main. Push and pull_request events land in
    different concurrency groups, so an open PR ran every leg twice per commit.
    PRs get one run per commit; main gets the badge run on merge.
  • Linux pins swift:6.2 — the package's declared tools-version floor —
    instead of floating on swift:latest, so the badge proves the minimum
    toolchain the package claims and can't flip red without a commit landing.

Notes

  • main has no branch protection, so no required status check is named after the
    old workflow and nothing breaks by renaming it.
  • A renamed workflow has no run on main until this merges, so the badges read
    "no status" until then. Self-healing on the first push after merge.
  • Empty changeset — CI and README only, so no version bump.

Part of GER-2175.

🤖 Generated with Claude Code

@changeset-bot

changeset-bot Bot commented Aug 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 093dfc7

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When 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

@germ-mark germ-mark changed the title Name the CI workflow for its platform and add a status badge Give each platform its own CI workflow and badge Aug 17, 2026
@germ-mark
germ-mark changed the base branch from main to port/service-endpoint-libc August 17, 2026 23:30
germ-mark and others added 2 commits August 17, 2026 17:06
GitHub's workflow badges are workflow-scoped, so a badge can only be as
specific as the workflow it points at. Naming this one Apple lets the
README state which platform is actually covered, and leaves room for
ci-linux.yml / ci-android.yml to land beside it.
An Apple-only badge says nothing about the platforms the package is being
ported to. Matches GermConvenience, whose three legs are green on main.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Push and pull_request events land in different concurrency groups, so an
open PR ran every leg twice per commit. Filtering push to main leaves one
run per PR commit plus the badge run on merge. Linux pins swift:6.2 — the
package's declared toolchain floor — instead of floating on latest.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@germ-mark
germ-mark merged commit 05be717 into main Aug 18, 2026
6 checks passed
@germ-mark
germ-mark deleted the ci/platform-badges branch August 18, 2026 03:34
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