Files
rdbms-playground/.gitea/workflows/macos-probe.yaml
T
claude@clouddev1 4d004f5847
macos-build-test / build (push) Failing after 1m36s
build-ci-image / build (push) Successful in 9m45s
ci / gate (push) Successful in 2m59s
ci: drop nix libiconv from darwin build (portable macOS binary)
The smoke-test caught the aarch64 binary linking a /nix/store libiconv.dylib
— non-portable (won't exist on a user's Mac). The Apple SDK already provides
a system libiconv stub, so removing pkgs.libiconv makes the linker resolve
-liconv to /usr/lib instead. The smoke-test now fails if any /nix/store dylib
is linked.
2026-06-14 21:36:08 +00:00

46 lines
1.8 KiB
YAML

# THROWAWAY build smoke-test for the macOS (Tart) runner. Verifies both
# *-apple-darwin targets actually compile and link (incl. arboard's AppKit)
# through the flake on the real Mac, before the full release-macos workflow is
# wired. Delete once that lands.
#
# Push-triggered (workflow_dispatch only works for workflows on the default
# branch; our CI is on `ci`). Runs when the flake/toolchain or this file change.
# Bring the Mac up before pushing so the run isn't left queued.
name: macos-build-test
on:
push:
paths:
- '.gitea/workflows/macos-probe.yaml'
- 'flake.nix'
- 'rust-toolchain.toml'
workflow_dispatch:
jobs:
build:
# Label NAME only — `:host` in the runner registration is the execution
# backend (run on host), not part of the label.
runs-on: macos
env:
# Guarantee flakes regardless of the Mac's nix config.
NIX_CONFIG: "experimental-features = nix-command flakes"
steps:
- uses: actions/checkout@v4
- name: build both darwin targets through the flake
run: |
set -e
for t in aarch64-apple-darwin x86_64-apple-darwin; do
echo "==================== $t ===================="
nix develop -c cargo build --release --target "$t"
f="target/$t/release/rdbms-playground"
file "$f"
echo "--- linked libs (otool -L) ---"
otool -L "$f"
# Portability guard: a distributable macOS binary must link only
# system libs (/usr/lib, /System/Library) — never a /nix/store path.
if otool -L "$f" | grep -q /nix/store; then
echo "ERROR: $t binary links a /nix/store dylib — not portable"; exit 1
fi
echo "OK: $t links only system libraries"
done
echo "=== both darwin targets built + portable ==="