Require opt-in via force-arch to run x86 on macOS arm (#352)

* require opt-in via `force-arch` to run x86 on macOS arm

* Update src/setup-julia.ts

* Run `make everything-from-scratch`, and check-in

* Fix CI in #352 (#373)

* Fix CI in #352

* Clarify a statement about the support for 32-bit builds

---------

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
This commit is contained in:
Ian Butterworth
2026-03-04 20:18:16 +00:00
committed by GitHub
parent 4c0cb0fce8
commit 44a615affb
7 changed files with 100 additions and 24 deletions

View File

@@ -12,6 +12,9 @@ on:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
test:
runs-on: ${{ matrix.os }}
@@ -19,24 +22,40 @@ jobs:
strategy:
fail-fast: false
matrix:
# include '1.6' here to test info message about lts tag existing
julia-version: ['1.0.5', '1.2', '^1.5.0-beta1', '1', '1.6', 'lts', 'pre']
julia-arch: [x64, x86]
os: [ubuntu-latest, macOS-latest, windows-latest]
julia-version:
- '1.0.5'
- '1.2'
- '^1.5.0-beta1'
- '1'
- '1.6'
- '1.10' # include '1.10' here to test info message about lts tag existing
- 'lts'
- 'pre'
julia-wordsize:
- 64
- 32
os:
- ubuntu-latest
- windows-latest
- macos-15-intel # Intel
- macos-latest # Apple Silicon
# 32-bit Julia binaries are not available on macOS
exclude:
- os: macOS-latest
julia-arch: x86
include:
- os: macOS-latest
julia-arch: aarch64
julia-version: 'lts'
- os: macOS-latest
julia-arch: aarch64
julia-version: '1'
- os: macos-15-intel # Intel
julia-wordsize: 32
- os: macos-latest # Apple Silicon
julia-wordsize: 32
# Julia versions prior to 1.8 do not have native builds for Apple Silicon
- os: macos-latest # Apple Silicon
julia-version: '1.0.5'
- os: macos-latest # Apple Silicon
julia-version: '1.2'
- os: macos-latest # Apple Silicon
julia-version: '1.6'
steps:
- uses: actions/checkout@v6.0.2
with:
persist-credentials: false
- uses: actions/setup-node@v6
if: ${{ ! startsWith(github.ref, 'refs/heads/releases') }}
@@ -55,7 +74,14 @@ jobs:
uses: ./
with:
version: ${{ matrix.julia-version }}
arch: ${{ matrix.julia-arch }}
# If `julia-wordsize` is 32, then we set `arch` to `x86`, because we know that
# Tier 1 32-bit builds of Julia are only available for x86.
#
# If `julia-wordsize` is 64, then we set `arch` to `${{ runner.arch }}`, which
# GitHub will automatically expand to the correct value (`x86_64` or `aarch64`)
# based on the architecture of the underlying GitHub Runner (virtual machine).
arch: ${{ matrix.julia-wordsize == '32' && 'x86' || runner.arch }}
- run: julia --version
- run: julia --compile=min -O0 -e 'import InteractiveUtils; InteractiveUtils.versioninfo()'
- name: "Check that the correct julia is used and that archive mtimes are maintained"