4040 - run : exit 0
4141 test :
4242 timeout-minutes : 90
43- runs-on : ${{ matrix.os }}
43+ runs-on : ${{ matrix.github-runner }}
4444 strategy :
4545 max-parallel : 20 # leave space for other runs in the JuliaLang org, given these tests are long
4646 fail-fast : false
@@ -51,32 +51,38 @@ jobs:
5151 - ' 1.10' # current LTS
5252 # - '1.11' # TODO: uncomment this line once we fix the tests on 1.11
5353 # - 'nightly' # TODO: decide whether we want to run any CI jobs on nightly.
54- julia-arch :
55- - ' x64' # 32-bit Julia
56- - ' x86' # 64-bit Julia
57- os :
54+ julia-wordsize :
55+ # The value here only affects the version of Julia binary that we download.
56+ # It does not affect the architecture of the GitHub Runner (virtual machine) that
57+ # we run on.
58+ - ' 32' # 32-bit Julia. Only available on x86_64. Not available on aarch64.
59+ - ' 64' # 64-bit Julia.
60+ github-runner :
5861 - ubuntu-latest
5962 - windows-latest
6063 - macos-13 # macos-13 = Intel.
61- # TODO: uncomment the next line, so that we can start testing on macos-14:
62- # - macos-14 # macos-14 = Apple Silicon.
64+ - macos-14 # macos-14 = Apple Silicon.
6365 coverage :
6466 - ' true'
6567 - ' false' # needed for Julia 1.9+ to test from a session using pkgimages
6668 exclude :
6769 # For now, we'll disable testing 32-bit Julia 1.9 on Windows.
6870 # TODO: remove the following once we fix the tests for 32-bit Julia 1.9 on Windows.
69- - os : windows-latest
70- julia-arch : x86
71+ - github-runner : windows-latest
7172 julia-version : ' 1.9'
73+ julia-wordsize : ' 32'
7274 #
73- # We don't have 32-bit builds of Julia for macOS :
74- - os : macos-latest
75- julia-arch : x86
75+ # Julia 1.6 did not support Apple Silicon :
76+ - github-runner : macos-14 # macos-14 = Apple Silicon.
77+ julia-version : ' 1.6 '
7678 #
77- # We don't have 32-bit builds of Julia for macOS:
78- - os : macos-latest
79- julia-arch : x86
79+ # We don't have 32-bit builds of Julia for Intel macOS:
80+ - github-runner : macos-13 # macos-13 = Intel.
81+ julia-wordsize : ' 32'
82+ #
83+ # We don't have 32-bit builds of Julia for Apple Silicon macOS:
84+ - github-runner : macos-14 # macos-14 = Apple Silicon.
85+ julia-wordsize : ' 32'
8086 #
8187 # We don't need to run the coverage=false job for Julia < 1.9:
8288 - julia-version : ' 1.6'
9096 - uses : julia-actions/setup-julia@9b79636afcfb07ab02c256cede01fe2db6ba808c # v2.6.0
9197 with :
9298 version : ${{ matrix.julia-version }}
99+ # If `julia-wordsize` is 32, then we set `arch` to `x86`, because we know that
100+ # 32-bit builds of Julia are only available for x86.
101+ #
102+ # If `julia-wordsize` is 64, then we set `arch` to `${{ runner.arch }}`, which
103+ # GitHub will automatically expand to the correct value (`x86_64` or `aarch64`)
104+ # based on the architecture of the underlying GitHub Runner (virtual machine).
105+ arch : ${{ github.ref == '32' && 'x86' || runner.arch }}
93106 - uses : julia-actions/cache@824243901fb567ccb490b0d0e2483ccecde46834 # v2.0.5
94107 - uses : julia-actions/julia-runtest@d0c4f093badade621cd041bba567d1e832480ac2 # v1.10.0
95108 with :
0 commit comments