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