Skip to content

ci(platforms): cover linux/arm64, the last shipped target nothing ran - #27

Merged
rldyourmnd merged 1 commit into
mainfrom
ci/cover-the-fourth-shipped-platform
Aug 23, 2026
Merged

ci(platforms): cover linux/arm64, the last shipped target nothing ran#27
rldyourmnd merged 1 commit into
mainfrom
ci/cover-the-fourth-shipped-platform

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

This repository declares four shipped combinations in its own schemas — target_os: ["darwin","linux"] × target_arch: ["amd64","arm64"] — and the release builder emits them.

target runner before
linux/amd64 ubuntu-latest covered
darwin/arm64 macos-latest (Apple Silicon) covered by #26
linux/arm64 nothing
darwin/amd64 nothing

ubuntu-24.04-arm is a standard hosted runner, unmetered on public repositories, so the third row costs nothing to fill and it is a target this repository ships binaries for.

darwin/amd64 is deliberately still uncovered

It needs macos-13, the last Intel image, whose retirement is already announced. A lane on a runner being withdrawn buys a signal that expires. Worth revisiting only if that target is still shipped by then — the alternative is to stop shipping it.

Rename

macos.ymlplatforms.yml, since it is no longer about macOS. Check names change from darwin to darwin-arm64 / linux-arm64.

Checked before renaming that nothing pins them: neither appears in required_contexts in .gds/repository.yaml or the live ruleset, which require only GDS fast / go (1.26.5) and GDS PR required / go (1.26.5). That is the failure mode NDDev-OpenNetwork/ci-workflows#29 was about, so it seemed worth confirming rather than assuming.

Unchanged

Steps are still the repository's own declared commands from .gds/repository.yaml (go vet ./..., go build -trimpath ./core/cmd/gds, go test ./...), so the lane cannot drift into testing something else. fail-fast: false so one platform failing still reports the other.

Verification

actionlint 1.7.12 clean. gds context on this branch reports no GDS_CONTEXT_POLICY_SOURCE_DIGEST_MISMATCH.github remains outside developmentBundleSourcePaths, so the bundle lock is untouched.

The darwin lane passed on its first real run: go test ./... in 189s on macos-latest. The linux/arm64 lane has never run; if it goes red that is the finding.

`release-installation.schema.json` and `bundle-trust.schema.json` declare
`target_os: ["darwin","linux"]` and `target_arch: ["amd64","arm64"]`. That is
four shipped combinations. Coverage after the darwin lane landed:

    linux/amd64    ubuntu-latest    covered
    darwin/arm64   macos-latest     covered (macos-latest is Apple Silicon)
    linux/arm64    -                nothing
    darwin/amd64   -                nothing

`ubuntu-24.04-arm` is a standard hosted runner and unmetered on public
repositories, so linux/arm64 costs nothing to cover and it is a target this
repository ships binaries for.

darwin/amd64 stays uncovered on purpose. It needs `macos-13`, the last Intel
image, whose retirement is already announced; adding a lane on a runner being
withdrawn buys a short-lived signal. Worth revisiting only if that target is
still shipped by then.

`macos.yml` becomes `platforms.yml` with a matrix, since it is no longer about
macOS. Neither check name was in `required_contexts`, so nothing pinned them —
checked before renaming, which is the failure mode
NDDev-OpenNetwork/ci-workflows#29 was about.

The steps remain the repository's own declared commands from
`.gds/repository.yaml`. `fail-fast: false` so one platform failing still reports
the other.

Verified: actionlint 1.7.12 clean, and `gds context` on this branch reports no
`GDS_CONTEXT_POLICY_SOURCE_DIGEST_MISMATCH` — `.github` remains outside the
bundle source paths.
@rldyourmnd
rldyourmnd merged commit da1058d into main Aug 23, 2026
7 checks passed
@rldyourmnd
rldyourmnd deleted the ci/cover-the-fourth-shipped-platform branch August 23, 2026 23:12
rldyourmnd added a commit to NDDev-OpenNetwork/agent-runtime that referenced this pull request Aug 23, 2026
`docs/releasing.md` and `release.yml` build four targets — linux/amd64,
linux/arm64, darwin/amd64, darwin/arm64. The test matrix covered two systems,
and because `macos-latest` is Apple Silicon that meant linux/amd64 and
darwin/arm64 ran while linux/arm64 was only ever cross-compiled at release time.

`ubuntu-24.04-arm` is a standard hosted runner, unmetered on public
repositories, so covering it costs nothing. Jobs in the matrix run in parallel,
so wall-clock is unchanged.

darwin/amd64 remains uncovered: it needs `macos-13`, the last Intel image, whose
retirement is already announced. Adding a lane on a runner being withdrawn buys
a signal that expires; the alternative is to stop shipping that target.

The same gap was closed in `github-device-sync` this week
(NDDev-OpenNetwork/github-device-sync#27), where both new lanes passed on their
first run — `ubuntu-24.04-arm` in 109s.

`Gate` is the only required status context here, so the added matrix entry
introduces no new required check and nothing was pinned to the old names.

Verified locally on linux/amd64: `go vet ./...` clean, `go test -race ./...`
every package ok, actionlint 1.7.12 clean.
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