@@ -17,7 +17,6 @@ concurrency:
1717
1818jobs :
1919 test :
20- name : Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
2120 runs-on : ${{ matrix.os }}
2221 strategy :
2322 fail-fast : false
@@ -30,26 +29,35 @@ jobs:
3029 os :
3130 - ubuntu-latest
3231 - windows-latest
33- arch :
34- - x64
35- - x86
36- include :
37- - os : macOS-latest
38- arch : aarch64
39- version : ' 1'
40- - os : macOS-latest
41- arch : aarch64
42- version : ' nightly'
32+ - macos-15-intel # Intel
33+ - macos-latest # Apple Silicon
34+ julia-wordsize :
35+ # The value here only affects the version of Julia binary that we download.
36+ # It does not affect the architecture of the GitHub Runner (virtual machine) that
37+ # we run on.
38+ - ' 32' # 32-bit Julia. Only available on x86_64. Not available on aarch64.
39+ - ' 64' # 64-bit Julia.
4340 exclude :
44- - os : windows-latest # Killing workers doesn't work on windows in 1.9
45- version : ' 1.9'
41+ # We don't have 32-bit builds of Julia for Intel macOS:
42+ - github-runner : macos-15-intel # Intel
43+ julia-wordsize : ' 32'
44+ #
45+ # We don't have 32-bit builds of Julia for Apple Silicon macOS:
46+ - github-runner : macos-latest # Apple Silicon
47+ julia-wordsize : ' 32'
4648
4749 steps :
4850 - uses : actions/checkout@v6
4951 - uses : julia-actions/setup-julia@v2
5052 with :
5153 version : ${{ matrix.version }}
52- arch : ${{ matrix.arch }}
54+ # If `julia-wordsize` is 32, then we set `arch` to `x86`, because we know that
55+ # 32-bit builds of Julia are only available for x86.
56+ #
57+ # If `julia-wordsize` is 64, then we set `arch` to `${{ runner.arch }}`, which
58+ # GitHub will automatically expand to the correct value (`x86_64` or `aarch64`)
59+ # based on the architecture of the underlying GitHub Runner (virtual machine).
60+ arch : ${{ github.ref == '32' && 'x86' || runner.arch }}
5361 - uses : actions/cache@v5
5462 env :
5563 cache-name : cache-artifacts
0 commit comments