From 5774ab7d9a4844dc4f1af8df40360a2c87006c98 Mon Sep 17 00:00:00 2001 From: Dilum Aluthge Date: Sun, 10 Dec 2023 15:14:10 -0500 Subject: [PATCH 1/3] CI: don't run the macOS CI jobs with the MKL provider --- .github/workflows/CI.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f66a5e2..80dc4f2 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -49,6 +49,9 @@ jobs: arch: x86 - provider: 'mkl' threads: '2' + # In MKL 2024, Intel dropped support for macOS. + - os: macOS-latest + provider: 'mkl' steps: - uses: actions/checkout@v3 From e50cd7945fae76a0c8fd28fbab398e014c943155 Mon Sep 17 00:00:00 2001 From: Dilum Aluthge Date: Sun, 10 Dec 2023 16:30:30 -0500 Subject: [PATCH 2/3] CI: for the macOS CI jobs with the MKL provider, force MKL_jll 2023 to be installed --- .ci/macos_mkl_2023.jl | 32 ++++++++++++++++++++++++++++++++ .github/workflows/CI.yml | 9 +++++---- 2 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 .ci/macos_mkl_2023.jl diff --git a/.ci/macos_mkl_2023.jl b/.ci/macos_mkl_2023.jl new file mode 100644 index 0000000..32b9871 --- /dev/null +++ b/.ci/macos_mkl_2023.jl @@ -0,0 +1,32 @@ +# In MKL 2024, Intel dropped support for macOS. +# So, in CI, for the macOS jobs, we force MKL 2023 to be installed (instead of +# MKL 2024). + +import TOML + +using Test: @test + +function main() + root_dotci_dir = @__DIR__ + root_dir = dirname(root_dotci_dir) + root_project_toml_filename = joinpath(root_dir, "Project.toml") + project = TOML.parsefile(root_project_toml_filename) + old_mkl_jll_compat = project["compat"]["MKL_jll"] + old_mkl_jll_compat_list = strip.(split(strip(old_mkl_jll_compat), ",")) + + # Regression test to catch if we ever drop support for MKL_jll 2023. + # Because, if we ever do choose to drop support for MKL_jll 2023, then this + # entire script should probably be deleted, since Intel dropped support for + # macOS in MKL 2024. + @test "2023" in old_mkl_jll_compat_list + + new_compat = "2023" + project["compat"]["MKL_jll"] = new_compat # force MKL_jll 2023 + open(root_project_toml_filename, "w") do io + TOML.print(io, project) + end + @info "Changed the compat entry for MKL_jll to: $(new_compat)" + return nothing +end + +main() diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 80dc4f2..f1b99b3 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -49,10 +49,6 @@ jobs: arch: x86 - provider: 'mkl' threads: '2' - # In MKL 2024, Intel dropped support for macOS. - - os: macOS-latest - provider: 'mkl' - steps: - uses: actions/checkout@v3 - uses: julia-actions/setup-julia@v1 @@ -60,6 +56,11 @@ jobs: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - uses: julia-actions/cache@v1 + # In MKL 2024, Intel dropped support for macOS. + # So, in CI, for the macOS jobs, we force MKL 2023 to be installed (instead of + # MKL 2024). + - run: julia .ci/macos_mkl_2023.jl + if: (matrix.os == 'macOS-latest') && (matrix.provider == 'mkl') - name: Set Preferences run: julia --project .github/set_ci_preferences.jl "${{ matrix.provider }}" - uses: julia-actions/julia-runtest@v1 From 4bd5b40a8a733c278c6347fa0e6291e5da691604 Mon Sep 17 00:00:00 2001 From: Dilum Aluthge Date: Sun, 10 Dec 2023 16:31:34 -0500 Subject: [PATCH 3/3] Restore whitespace --- .github/workflows/CI.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f1b99b3..c2dd225 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -49,6 +49,7 @@ jobs: arch: x86 - provider: 'mkl' threads: '2' + steps: - uses: actions/checkout@v3 - uses: julia-actions/setup-julia@v1