Skip to content

fix(ci): pin macOS CI to x86_64 — tempo2 requires 128-bit long double#84

Open
vhaasteren wants to merge 1 commit intovallis:masterfrom
vhaasteren:fix/ci-macos-x86_64
Open

fix(ci): pin macOS CI to x86_64 — tempo2 requires 128-bit long double#84
vhaasteren wants to merge 1 commit intovallis:masterfrom
vhaasteren:fix/ci-macos-x86_64

Conversation

@vhaasteren
Copy link
Copy Markdown
Collaborator

Fixes #83

Summary

  • Pin macOS CI to macos-15-intel (x86_64). tempo2 requires 128-bit long double which arm64 macOS does not provide.
  • Update GitHub Actions to current major versions (checkout v4, setup-python v5, download-artifact v4)
  • Set TEMPO2_PREFIX via $GITHUB_ENV so it survives pip build isolation
  • Fix brew commands and BSD sed quoting in install_tempo2.sh
  • Drop Python 3.8 (EOL); add Python 3.13; keep 3.9 on Linux only

@vhaasteren vhaasteren force-pushed the fix/ci-macos-x86_64 branch 4 times, most recently from e91ce96 to c202ff4 Compare April 10, 2026 14:07
tempo2 relies on 128-bit long double for quad-precision timing. On
arm64 macOS (Apple Silicon), long double is only 64 bits (same as
double), so tempo2 produces silently incorrect results. The old
macos-latest runner was x86_64 Intel, but GitHub moved it to arm64
in 2024-2025 and removed macos-13 (the last x86_64 image) in Dec 2025.

Pin macOS CI to macos-15-intel (x86_64, available until Aug 2027).
On Linux aarch64, long double is 128-bit IEEE quad (software-emulated),
so ubuntu-latest continues to work regardless of host architecture.

Other fixes in this commit:
- Update actions/checkout v2→v4, actions/setup-python v2→v5,
  actions/download-artifact v4.1.7→v4
- Set TEMPO2_PREFIX via GITHUB_ENV so setup.py finds tempo2 under
  pip's build isolation
- Replace fragile `brew unlink gcc && brew link gcc` with
  `brew install automake libtool gcc && brew link --overwrite gcc`
  (ensures gfortran symlink exists even when gcc is pre-installed)
- Fix sed quoting bug in install_tempo2.sh (macOS BSD sed needs
  -i and '' as separate arguments)
- Drop Python 3.8 (EOL); keep 3.9 on Linux only; add Python 3.13
- Simplify build job (Linux-only, remove dead macOS if-block)
@vhaasteren vhaasteren force-pushed the fix/ci-macos-x86_64 branch from c202ff4 to 759b3cc Compare April 10, 2026 14:12
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.

CI broken on macOS: Cannot find tempo2 install location on arm64 runners

1 participant