From 60efd514423f37f30ad8932f4e0e1487b99a058b Mon Sep 17 00:00:00 2001 From: rldyourmnd Date: Mon, 24 Aug 2026 04:13:36 +0500 Subject: [PATCH] ci: run linux/arm64 natively instead of only cross-compiling it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `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. --- .github/workflows/ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 725af82..fdab223 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,15 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] + # docs/releasing.md builds linux/amd64, linux/arm64, darwin/amd64 and + # darwin/arm64. macos-latest is Apple Silicon, so these three cover every + # shipped combination except darwin/amd64, which needs macos-13 — the last + # Intel image, already announced for retirement. + # + # ubuntu-24.04-arm is a standard hosted runner and unmetered on public + # repositories, so linux/arm64 costs nothing to exercise natively rather + # than only cross-compiling it at release time. + os: [ubuntu-latest, ubuntu-24.04-arm, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1