fix(release-binaries): drop x86_64-apple-darwin target
macos-13 runner tier is being phased out by GitHub — queues persistently exceeded 1 h during v0.9.0-rc1 build. Intel Mac users fall back to 'cargo install --features bundled-assets' from source, Docker --platform linux/amd64, or a Linux VM.
This commit is contained in:
@@ -87,8 +87,21 @@ jobs:
|
||||
|
||||
# ── Stage 2: Build one binary per target ────────────────────────────
|
||||
#
|
||||
# 4-way matrix — 2 musl-linux (native amd64 + arm64) + 2 macOS
|
||||
# (Apple Silicon + last Intel runner tier). Windows is deferred.
|
||||
# 3-way matrix — 2 musl-linux (native amd64 + arm64) + macOS Apple
|
||||
# Silicon. Windows and Intel macOS are deferred:
|
||||
#
|
||||
# * Intel macOS (`x86_64-apple-darwin` / macos-13 runner) — dropped
|
||||
# 2026-08-29. Apple is phasing out Intel Macs from GitHub's hosted
|
||||
# runners; the `macos-13` tier is scheduled for deprecation and
|
||||
# queues stretched past 1 h during v0.9.0-rc1 build. Intel Mac
|
||||
# users have three fallbacks: (1) `cargo install oxicloud
|
||||
# --locked --features bundled-assets` from source, (2) `docker
|
||||
# pull --platform linux/amd64 ghcr.io/atalayalabs/oxicloud`,
|
||||
# (3) any of the two Linux musl tarballs via a Linux VM. The
|
||||
# Intel-Mac install base is small and shrinking (Apple Silicon
|
||||
# >90% of new sales) so first-class shipping isn't worth the
|
||||
# CI-availability tax.
|
||||
# * Windows — separate work when demand appears.
|
||||
#
|
||||
# All targets run natively on GitHub-hosted runners with the host's
|
||||
# glibc + rustup, then cross-compile to their target triple via
|
||||
@@ -128,9 +141,6 @@ jobs:
|
||||
- triple: aarch64-apple-darwin
|
||||
runner: macos-latest
|
||||
rustflags: "-C target-cpu=apple-m1"
|
||||
- triple: x86_64-apple-darwin
|
||||
runner: macos-13
|
||||
rustflags: "-C target-cpu=x86-64-v2"
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
|
||||
+10
-4
@@ -11,21 +11,27 @@ oxicloud` picks the right archive for your host automatically.
|
||||
|
||||
## Which tarball do I want?
|
||||
|
||||
Every release attaches four tarballs plus a `SHA256SUMS` manifest. Pick
|
||||
by your host's architecture and OS:
|
||||
Every release attaches three tarballs plus a `SHA256SUMS` manifest.
|
||||
Pick by your host's architecture and OS:
|
||||
|
||||
| Host | Tarball |
|
||||
|---|---|
|
||||
| Linux x86-64 (Intel / AMD servers, most VPS, WSL) | `oxicloud-<version>-x86_64-unknown-linux-musl.tar.gz` |
|
||||
| Linux ARM64 (Raspberry Pi 4/5, Ampere, Graviton, ARM servers) | `oxicloud-<version>-aarch64-unknown-linux-musl.tar.gz` |
|
||||
| macOS Apple Silicon (M-series) | `oxicloud-<version>-aarch64-apple-darwin.tar.gz` |
|
||||
| macOS Intel | `oxicloud-<version>-x86_64-apple-darwin.tar.gz` |
|
||||
|
||||
The Linux tarballs link against musl, so they run on ANY glibc version
|
||||
— Alpine, Debian, Ubuntu, Fedora, Arch, Rocky, and every version in
|
||||
between. You never need to worry about `GLIBC_x.yy not found`.
|
||||
|
||||
Windows and 32-bit ARM are not currently shipped.
|
||||
**Intel macOS, Windows, and 32-bit ARM are not currently shipped as
|
||||
prebuilt tarballs.** Intel Mac users have three fallbacks:
|
||||
|
||||
1. `cargo install oxicloud --locked --features bundled-assets` from
|
||||
source (needs the Rust toolchain).
|
||||
2. Docker: `docker pull --platform linux/amd64 ghcr.io/atalayalabs/oxicloud`.
|
||||
3. Run one of the two Linux musl tarballs inside a Linux VM
|
||||
(Multipass, Lima, UTM, etc.).
|
||||
|
||||
## Hardware notes
|
||||
|
||||
|
||||
@@ -433,14 +433,28 @@ its cache).
|
||||
|
||||
### 3. Target matrix — musl-only Linux
|
||||
|
||||
Four triples cover the practical need:
|
||||
Three triples cover the practical need:
|
||||
|
||||
| Triple | Runner + toolchain | Notes |
|
||||
|---|---|---|
|
||||
| `x86_64-unknown-linux-musl` | `ubuntu-22.04` running `rust:1.96-alpine3.24` container | Static, no glibc dep, runs on ANY Linux distro from Alpine to CentOS 7 to Debian 10 to Ubuntu 25.04. Parity with existing Docker image. |
|
||||
| `aarch64-unknown-linux-musl` | `ubuntu-22.04-arm` running `rust:1.96-alpine3.24` container | Native ARM64 runner (no QEMU), same container as amd64 for byte-for-byte parity. Pi 4/5, ARM servers, Graviton. |
|
||||
| `x86_64-unknown-linux-musl` | `ubuntu-22.04` + `musl-tools` + `rustup target add` | Static, no glibc dep, runs on ANY Linux distro from Alpine to CentOS 7 to Debian 10 to Ubuntu 25.04. Cross-compiled natively with glibc host + musl target; produces same output as the alpine-container path we originally planned. |
|
||||
| `aarch64-unknown-linux-musl` | `ubuntu-22.04-arm` + `musl-tools` + `rustup target add` | Same shape as the amd64 twin. Native ARM64 runner (no QEMU). Pi 4/5, ARM servers, Graviton. |
|
||||
| `aarch64-apple-darwin` | `macos-latest` | Apple Silicon, native |
|
||||
| `x86_64-apple-darwin` | `macos-13` | last Intel-runner tier |
|
||||
|
||||
**Historical note — Intel macOS dropped 2026-08-29** (Apple phasing
|
||||
out `macos-13`; runner-availability tax exceeded value). Intel Mac
|
||||
users fall back to `cargo install`, Docker `--platform linux/amd64`,
|
||||
or one of the Linux musl tarballs inside a Linux VM.
|
||||
|
||||
**Historical note — Alpine-container approach abandoned 2026-08-29**
|
||||
in favour of native cross-compile. Original plan built inside the
|
||||
Dockerfile's `rust:1.96-alpine3.24` for byte-for-byte parity with
|
||||
Docker; broke on `ubuntu-22.04-arm` because JS-based GitHub Actions
|
||||
(checkout, artifact steps, setup-node) can't run inside Alpine on
|
||||
ARM64 (Node.js binary requires glibc; the x64-Alpine workaround
|
||||
doesn't extend to arm64). Native `ubuntu-22.04` + `musl-tools` +
|
||||
`rustup target add` produces the same `--target *-musl` output
|
||||
without the container gymnastics.
|
||||
|
||||
**Rationale for musl-only Linux**:
|
||||
|
||||
@@ -524,7 +538,6 @@ Per-target baseline for `release-binaries.yml`:
|
||||
| `x86_64-unknown-linux-musl` | `-C target-cpu=x86-64-v2` |
|
||||
| `aarch64-unknown-linux-musl` | `-C target-cpu=generic` (safe ARMv8-A baseline) |
|
||||
| `aarch64-apple-darwin` | `-C target-cpu=apple-m1` |
|
||||
| `x86_64-apple-darwin` | `-C target-cpu=x86-64-v2` |
|
||||
|
||||
`x86-64-v2` covers ~2010+ processors (Nehalem, Bulldozer). Widest
|
||||
realistic install base for a "runs everywhere" tarball. Notably
|
||||
|
||||
Reference in New Issue
Block a user