diff --git a/.github/workflows/example-builds-nightly.yml b/.github/workflows/example-builds-nightly.yml index 28a850b..227a51b 100644 --- a/.github/workflows/example-builds-nightly.yml +++ b/.github/workflows/example-builds-nightly.yml @@ -20,13 +20,23 @@ jobs: strategy: fail-fast: false matrix: - julia-version: [nightly, 1.13-nightly] - julia-arch: [x64, x86] - os: [ubuntu-latest, macOS-latest, windows-latest] + julia-version: + - nightly + - 1.13-nightly + 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 + - os: macos-15-intel # Intel + julia-wordsize: 32 + - os: macos-latest # Apple Silicon + julia-wordsize: 32 steps: - uses: actions/checkout@v6.0.2 @@ -47,7 +57,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 + # 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" diff --git a/.github/workflows/example-builds.yml b/.github/workflows/example-builds.yml index 0d54e42..46dd30f 100644 --- a/.github/workflows/example-builds.yml +++ b/.github/workflows/example-builds.yml @@ -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"