From 9ae9d936ff566884a62a9e35058bcce8ade177f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Tue, 6 Aug 2024 17:47:08 +0100 Subject: [PATCH 1/8] [docs] Build with `linkcheck=true` --- docs/make.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/make.jl b/docs/make.jl index 2ce24ec7d..2bfbf8954 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -78,6 +78,7 @@ makedocs( ], "refindex.md", ], + linkcheck = true, ) deploydocs( From 58a6d6c1634bbf44b5c1e6fb4db82d71d214d51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Mon, 26 Aug 2024 22:40:25 +0200 Subject: [PATCH 2/8] Point MPICH manpages again to "latest" version --- src/MPI.jl | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/MPI.jl b/src/MPI.jl index 530412430..e0cf92f05 100644 --- a/src/MPI.jl +++ b/src/MPI.jl @@ -19,14 +19,12 @@ end function _doc_external(fname) - # Ideally we'd like to use the "latest" version of the docs, but MPICH v4.0 - # at the moment seems to be the last version with all the docstrings. - mpich = "[MPICH](https://www.mpich.org/static/docs/v4.0/www3/$(fname).html)" + mpich = "[MPICH](https://www.mpich.org/static/docs/latest/www3/$(fname).html)" # All the *_c functions are undocumented in OpenMPI website if !endswith(string(fname), "_c") openmpi = "[OpenMPI](https://docs.open-mpi.org/en/main/man-openmpi/man3/$(fname).3.html)" # Few docstrings aren't available for MPICH - if fname in (:MPI_Status_c2f, :MPI_Status_f2c) || startswith(string(fname), "MPI_Type_create_f90_") + if startswith(string(fname), "MPI_Type_create_f90_") return """ - `$fname` man page: $(openmpi) """ From 1358816973ddba46bdd297eaecffcb385f55dcfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Mon, 26 Aug 2024 22:41:10 +0200 Subject: [PATCH 3/8] [DROP ME] temporarily skip tests --- .github/workflows/UnitTests.yml | 1256 +++++++++++++++---------------- 1 file changed, 628 insertions(+), 628 deletions(-) diff --git a/.github/workflows/UnitTests.yml b/.github/workflows/UnitTests.yml index d8cb45900..bcb342c9c 100644 --- a/.github/workflows/UnitTests.yml +++ b/.github/workflows/UnitTests.yml @@ -1,628 +1,628 @@ -name: Unit Tests - -on: - pull_request: - paths: - - '.github/workflows/UnitTests.yml' - - 'bin/**' - - 'deps/**' - - 'src/**' - - 'test/**' - - 'lib/**' - push: - branches: - - master - - release-* - paths: - - '.github/workflows/UnitTests.yml' - - 'bin/**' - - 'deps/**' - - 'src/**' - - 'test/**' - - 'lib/**' - -concurrency: - # Skip intermediate builds: always. - # Cancel intermediate builds: always. - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - test-default: - timeout-minutes: 20 - strategy: - matrix: - os: - - macos-13 - - ubuntu-latest - - windows-latest - julia_version: - - "1.6" - - "1" - - "nightly" - julia_arch: [x64, x86] - exclude: - - os: macos-13 - julia_arch: x86 - include: - - os: macos-14 - julia_arch: "aarch64" - julia_version: "1" - - fail-fast: false - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - uses: julia-actions/setup-julia@v1 - with: - arch: ${{ matrix.julia_arch }} - version: ${{ matrix.julia_version }} - - uses: julia-actions/cache@v2 - - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - uses: julia-actions/julia-runtest@v1 - - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v4 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: lcov.info - - uses: julia-actions/julia-uploadcoveralls@v1 - continue-on-error: true - env: - COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} - - test-openmpi-jll: - timeout-minutes: 20 - strategy: - matrix: - os: - - macos-13 - - ubuntu-latest - julia_version: - - "1.6" - - "1" - - "nightly" - julia_arch: [x64, x86] - exclude: - - os: macos-13 - julia_arch: x86 - - fail-fast: false - env: - JULIA_MPI_TEST_BINARY: OpenMPI_jll - JULIA_MPI_TEST_ABI: OpenMPI - OMPI_MCA_btl_base_warn_component_unused: 0 - OMPI_MCA_rmaps_base_oversubscribe: true - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - uses: julia-actions/setup-julia@v1 - with: - arch: ${{ matrix.julia_arch }} - version: ${{ matrix.julia_version }} - - uses: julia-actions/cache@v2 - - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use OpenMPI_jll - shell: julia --color=yes --project=test {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - using MPIPreferences - MPIPreferences.use_jll_binary("OpenMPI_jll", export_prefs=true) - rm("test/Manifest.toml") - - - uses: julia-actions/julia-runtest@v1 - - test-system-brew: - timeout-minutes: 20 - strategy: - matrix: - os: - - macos-13 - - macos-14 - mpi: - - mpich - - openmpi - julia_version: - - "1" - julia_arch: - - "x64" - - "aarch64" - exclude: - - os: macos-13 - julia_arch: "aarch64" - - os: macos-14 - julia_arch: "x64" - - fail-fast: false - - runs-on: ${{ matrix.os }} - env: - JULIA_MPI_TEST_BINARY: system - ZES_ENABLE_SYSMAN: 1 # https://github.com/open-mpi/ompi/issues/10142 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install MPI via homebrew - run: | - brew install "${{ matrix.mpi }}" - - - uses: julia-actions/setup-julia@v1 - with: - version: ${{ matrix.julia_version }} - arch: ${{ matrix.julia_arch }} - - - uses: julia-actions/cache@v2 - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use system MPI - shell: julia --color=yes --project=. {0} - run: | - using MPIPreferences - mpi_prefix = readchomp(`brew --prefix ${{ matrix.mpi }}`) - libdir = joinpath(mpi_prefix, "lib") - MPIPreferences.use_system_binary(; extra_paths=[libdir]) - - - uses: julia-actions/julia-runtest@v1 - env: - # TODO: Only disable this test for MPICH. OpenMPI works fine. - JULIA_MPI_TEST_DISABLE_REDUCE_ON_APPLE: 1 - - - test-system-apt: - timeout-minutes: 20 - strategy: - matrix: - mpi: - - libmpich-dev - - libopenmpi-dev - julia_version: - - "1" - - fail-fast: false - - runs-on: ubuntu-20.04 - - env: - JULIA_MPI_TEST_BINARY: system - OMPI_MCA_btl_base_warn_component_unused: 0 - OMPI_MCA_rmaps_base_oversubscribe: true - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install MPI via apt - run: | - sudo apt-get update - sudo apt-get install $MPI - env: - MPI: ${{ matrix.mpi }} - - - uses: julia-actions/setup-julia@v1 - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v2 - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use system MPI - shell: julia --color=yes --project=. {0} - run: | - using MPIPreferences - MPIPreferences.use_system_binary() - - - uses: julia-actions/julia-runtest@v1 - - test-intel-linux: - timeout-minutes: 20 - strategy: - matrix: - include: - - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-mpi-jq - name: "Intel MPI 2019.9.304" - - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq - name: "Intel oneAPI MPI 2021.11.0" - - fail-fast: false - - runs-on: ubuntu-latest - container: ${{ matrix.container }} - name: "Test ${{ matrix.name }}" - - env: - JULIA_MPI_TEST_BINARY: system - JULIA_MPI_TEST_ABI: MPICH - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - uses: julia-actions/setup-julia@v1 - with: - version: "1" - - - uses: julia-actions/cache@v2 - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use system MPI - run: | - julia --color=yes --project=. -e ' - using MPIPreferences - MPIPreferences.use_system_binary()' - - - uses: julia-actions/julia-runtest@v1 - - - test-system-msmpi: - timeout-minutes: 20 - strategy: - matrix: - julia_version: - - "1" - - fail-fast: false - - runs-on: windows-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download Microsoft MPI - run: (new-object net.webclient).DownloadFile("https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe", "msmpisetup.exe") - shell: powershell - - - name: Install Microsoft MPI - run: msmpisetup.exe -unattend -minimal - shell: cmd - - - uses: julia-actions/setup-julia@v1 - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v2 - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: add MPIPreferences, use system - shell: julia --color=yes --project=test {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - using MPIPreferences - MPIPreferences.use_system_binary(; - export_prefs=true, - mpiexec="C:\\Program Files\\Microsoft MPI\\Bin\\mpiexec" - ) - rm("test/Manifest.toml") - - - uses: julia-actions/julia-runtest@v1 - - - test-mpitrampoline-jll: - timeout-minutes: 20 - strategy: - matrix: - os: - - macos-13 - - ubuntu-latest - mpi: [mpitrampoline] - julia_version: - - "1.6" - - "1" - - "nightly" - julia_arch: - - x64 - - x86 - exclude: - - os: macos-13 - julia_arch: x86 - - fail-fast: false - - runs-on: ${{ matrix.os }} - env: - JULIA_MPI_TEST_BINARY: MPItrampoline_jll - JULIA_MPI_TEST_ABI: MPItrampoline - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - uses: julia-actions/setup-julia@v1 - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v2 - - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use MPItrampoline_jll - shell: julia --color=yes --project=test {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - using MPIPreferences - MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) - rm("test/Manifest.toml") - - - uses: julia-actions/julia-runtest@v1 - - - test-mpitrampoline-system-apt: - timeout-minutes: 20 - strategy: - matrix: - mpi: - - libmpich-dev - - libopenmpi-dev - julia_version: - - "1" - # We don't need to test all combinations - # - "1.7" - # - "nightly" - MPIWrapper: - - "2.11.0" - - fail-fast: false - - runs-on: ubuntu-20.04 - - env: - JULIA_MPI_TEST_BINARY: MPItrampoline_jll - JULIA_MPI_TEST_ABI: MPItrampoline - MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so - MPITRAMPOLINE_MPIEXEC: /usr/bin/mpiexec - OMPI_MCA_btl_base_warn_component_unused: 0 - OMPI_MCA_rmaps_base_oversubscribe: true - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install MPI via apt - run: | - sudo apt-get update - sudo apt-get install $MPI - env: - MPI: ${{ matrix.mpi }} - - - name: Build MPIwrapper - run: | - wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz - tar xzf v${MPIWrapper}.tar.gz - cd MPIwrapper-* - cmake -DMPIEXEC_EXECUTABLE=mpiexec -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local . - cmake --build . - sudo cmake --install . - env: - MPIWrapper: ${{matrix.MPIWrapper}} - - - uses: julia-actions/setup-julia@v1 - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v2 - - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use MPItrampoline_jll - shell: julia --color=yes --project=test {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - using MPIPreferences - MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) - rm("test/Manifest.toml") - - - uses: julia-actions/julia-runtest@v1 - - - test-mpitrampoline-oneapi-linux: - timeout-minutes: 20 - strategy: - matrix: - julia_version: - - "1" - MPIWrapper: - - "2.11.0" - - fail-fast: false - - runs-on: ubuntu-latest - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq - - env: - JULIA_MPI_TEST_BINARY: MPItrampoline_jll - JULIA_MPI_TEST_ABI: MPItrampoline - MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set MPITRAMPOLINE_MPIEXEC - run: echo "MPITRAMPOLINE_MPIEXEC=$(which mpiexec)" >> "${GITHUB_ENV}" - - - name: Build MPIwrapper - run: | - apt-get update - apt-get install -y wget cmake gcc g++ gfortran python3 - wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz - tar xzf v${MPIWrapper}.tar.gz - cd MPIwrapper-* - cmake \ - -DMPIEXEC_EXECUTABLE=mpiexec \ - -DCMAKE_BUILD_TYPE=Debug \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - . - cmake --build . - cmake --install . - env: - MPIWrapper: ${{matrix.MPIWrapper}} - - - uses: julia-actions/setup-julia@v1 - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v2 - - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use MPItrampoline_jll - shell: julia --color=yes --project=test {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - using MPIPreferences - MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) - rm("test/Manifest.toml") - - - uses: julia-actions/julia-runtest@v1 - - - test-spack-mvapich: - timeout-minutes: 20 - strategy: - matrix: - include: - - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich2-jq - name: "MVAPICH 2.3.7" - - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich3-jq - name: "MVAPICH 3.0" - - fail-fast: false - - runs-on: ubuntu-22.04 - container: ${{ matrix.container }} - name: "Test ${{ matrix.name }}" - - env: - JULIA_MPI_TEST_BINARY: system - JULIA_MPI_TEST_EXCLUDE: test_spawn.jl - MV2_SMP_USE_CMA: 0 - # Work around issue with affinity not set. Ref: - # https://github.com/JuliaParallel/MPI.jl/pull/810#issuecomment-1920255386 - MVP_ENABLE_AFFINITY: 0 - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - uses: julia-actions/setup-julia@v1 - with: - version: "1" - - - uses: julia-actions/cache@v2 - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - Pkg.precompile() - - - name: use system MPI - shell: julia --color=yes --project=. {0} - run: | - using MPIPreferences - MPIPreferences.use_system_binary() - - - uses: julia-actions/julia-runtest@v1 - - - # TODO: Can remove this once we can use OpenMPI_jll v5 - test-spack-openmpi5: - timeout-minutes: 20 - strategy: - matrix: - include: - - container: ghcr.io/juliaparallel/github-actions-buildcache:openmpi5-jq - name: "OpenMPI 5.0.2" - - fail-fast: false - - runs-on: ubuntu-22.04 - container: ${{ matrix.container }} - name: "Test ${{ matrix.name }}" - - env: - JULIA_MPI_TEST_BINARY: system - JULIA_MPI_TEST_ABI: OpenMPI - # Allow running as root - OMPI_ALLOW_RUN_AS_ROOT: 1 - OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 - # Allow oversubscription - PRTE_MCA_rmaps_default_mapping_policy: :oversubscribe - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - uses: julia-actions/setup-julia@v1 - with: - version: "1" - - - uses: julia-actions/cache@v2 - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - Pkg.precompile() - - - name: use system MPI - shell: julia --color=yes --project=. {0} - run: | - using MPIPreferences - MPIPreferences.use_system_binary() - - - uses: julia-actions/julia-runtest@v1 +# name: Unit Tests + +# on: +# pull_request: +# paths: +# - '.github/workflows/UnitTests.yml' +# - 'bin/**' +# - 'deps/**' +# - 'src/**' +# - 'test/**' +# - 'lib/**' +# push: +# branches: +# - master +# - release-* +# paths: +# - '.github/workflows/UnitTests.yml' +# - 'bin/**' +# - 'deps/**' +# - 'src/**' +# - 'test/**' +# - 'lib/**' + +# concurrency: +# # Skip intermediate builds: always. +# # Cancel intermediate builds: always. +# group: ${{ github.workflow }}-${{ github.ref }} +# cancel-in-progress: true + +# jobs: +# test-default: +# timeout-minutes: 20 +# strategy: +# matrix: +# os: +# - macos-13 +# - ubuntu-latest +# - windows-latest +# julia_version: +# - "1.6" +# - "1" +# - "nightly" +# julia_arch: [x64, x86] +# exclude: +# - os: macos-13 +# julia_arch: x86 +# include: +# - os: macos-14 +# julia_arch: "aarch64" +# julia_version: "1" + +# fail-fast: false + +# runs-on: ${{ matrix.os }} + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - uses: julia-actions/setup-julia@v1 +# with: +# arch: ${{ matrix.julia_arch }} +# version: ${{ matrix.julia_version }} +# - uses: julia-actions/cache@v2 + +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - uses: julia-actions/julia-runtest@v1 +# - uses: julia-actions/julia-processcoverage@v1 +# - uses: codecov/codecov-action@v4 +# with: +# token: ${{ secrets.CODECOV_TOKEN }} +# files: lcov.info +# - uses: julia-actions/julia-uploadcoveralls@v1 +# continue-on-error: true +# env: +# COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + +# test-openmpi-jll: +# timeout-minutes: 20 +# strategy: +# matrix: +# os: +# - macos-13 +# - ubuntu-latest +# julia_version: +# - "1.6" +# - "1" +# - "nightly" +# julia_arch: [x64, x86] +# exclude: +# - os: macos-13 +# julia_arch: x86 + +# fail-fast: false +# env: +# JULIA_MPI_TEST_BINARY: OpenMPI_jll +# JULIA_MPI_TEST_ABI: OpenMPI +# OMPI_MCA_btl_base_warn_component_unused: 0 +# OMPI_MCA_rmaps_base_oversubscribe: true + +# runs-on: ${{ matrix.os }} + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - uses: julia-actions/setup-julia@v1 +# with: +# arch: ${{ matrix.julia_arch }} +# version: ${{ matrix.julia_version }} +# - uses: julia-actions/cache@v2 + +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: use OpenMPI_jll +# shell: julia --color=yes --project=test {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") +# using MPIPreferences +# MPIPreferences.use_jll_binary("OpenMPI_jll", export_prefs=true) +# rm("test/Manifest.toml") + +# - uses: julia-actions/julia-runtest@v1 + +# test-system-brew: +# timeout-minutes: 20 +# strategy: +# matrix: +# os: +# - macos-13 +# - macos-14 +# mpi: +# - mpich +# - openmpi +# julia_version: +# - "1" +# julia_arch: +# - "x64" +# - "aarch64" +# exclude: +# - os: macos-13 +# julia_arch: "aarch64" +# - os: macos-14 +# julia_arch: "x64" + +# fail-fast: false + +# runs-on: ${{ matrix.os }} +# env: +# JULIA_MPI_TEST_BINARY: system +# ZES_ENABLE_SYSMAN: 1 # https://github.com/open-mpi/ompi/issues/10142 + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - name: Install MPI via homebrew +# run: | +# brew install "${{ matrix.mpi }}" + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: ${{ matrix.julia_version }} +# arch: ${{ matrix.julia_arch }} + +# - uses: julia-actions/cache@v2 +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: use system MPI +# shell: julia --color=yes --project=. {0} +# run: | +# using MPIPreferences +# mpi_prefix = readchomp(`brew --prefix ${{ matrix.mpi }}`) +# libdir = joinpath(mpi_prefix, "lib") +# MPIPreferences.use_system_binary(; extra_paths=[libdir]) + +# - uses: julia-actions/julia-runtest@v1 +# env: +# # TODO: Only disable this test for MPICH. OpenMPI works fine. +# JULIA_MPI_TEST_DISABLE_REDUCE_ON_APPLE: 1 + + +# test-system-apt: +# timeout-minutes: 20 +# strategy: +# matrix: +# mpi: +# - libmpich-dev +# - libopenmpi-dev +# julia_version: +# - "1" + +# fail-fast: false + +# runs-on: ubuntu-20.04 + +# env: +# JULIA_MPI_TEST_BINARY: system +# OMPI_MCA_btl_base_warn_component_unused: 0 +# OMPI_MCA_rmaps_base_oversubscribe: true + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - name: Install MPI via apt +# run: | +# sudo apt-get update +# sudo apt-get install $MPI +# env: +# MPI: ${{ matrix.mpi }} + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: ${{ matrix.julia_version }} + +# - uses: julia-actions/cache@v2 +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: use system MPI +# shell: julia --color=yes --project=. {0} +# run: | +# using MPIPreferences +# MPIPreferences.use_system_binary() + +# - uses: julia-actions/julia-runtest@v1 + +# test-intel-linux: +# timeout-minutes: 20 +# strategy: +# matrix: +# include: +# - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-mpi-jq +# name: "Intel MPI 2019.9.304" +# - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq +# name: "Intel oneAPI MPI 2021.11.0" + +# fail-fast: false + +# runs-on: ubuntu-latest +# container: ${{ matrix.container }} +# name: "Test ${{ matrix.name }}" + +# env: +# JULIA_MPI_TEST_BINARY: system +# JULIA_MPI_TEST_ABI: MPICH + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: "1" + +# - uses: julia-actions/cache@v2 +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: use system MPI +# run: | +# julia --color=yes --project=. -e ' +# using MPIPreferences +# MPIPreferences.use_system_binary()' + +# - uses: julia-actions/julia-runtest@v1 + + +# test-system-msmpi: +# timeout-minutes: 20 +# strategy: +# matrix: +# julia_version: +# - "1" + +# fail-fast: false + +# runs-on: windows-latest + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - name: Download Microsoft MPI +# run: (new-object net.webclient).DownloadFile("https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe", "msmpisetup.exe") +# shell: powershell + +# - name: Install Microsoft MPI +# run: msmpisetup.exe -unattend -minimal +# shell: cmd + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: ${{ matrix.julia_version }} + +# - uses: julia-actions/cache@v2 +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: add MPIPreferences, use system +# shell: julia --color=yes --project=test {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") +# using MPIPreferences +# MPIPreferences.use_system_binary(; +# export_prefs=true, +# mpiexec="C:\\Program Files\\Microsoft MPI\\Bin\\mpiexec" +# ) +# rm("test/Manifest.toml") + +# - uses: julia-actions/julia-runtest@v1 + + +# test-mpitrampoline-jll: +# timeout-minutes: 20 +# strategy: +# matrix: +# os: +# - macos-13 +# - ubuntu-latest +# mpi: [mpitrampoline] +# julia_version: +# - "1.6" +# - "1" +# - "nightly" +# julia_arch: +# - x64 +# - x86 +# exclude: +# - os: macos-13 +# julia_arch: x86 + +# fail-fast: false + +# runs-on: ${{ matrix.os }} +# env: +# JULIA_MPI_TEST_BINARY: MPItrampoline_jll +# JULIA_MPI_TEST_ABI: MPItrampoline + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: ${{ matrix.julia_version }} + +# - uses: julia-actions/cache@v2 + +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: use MPItrampoline_jll +# shell: julia --color=yes --project=test {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") +# using MPIPreferences +# MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) +# rm("test/Manifest.toml") + +# - uses: julia-actions/julia-runtest@v1 + + +# test-mpitrampoline-system-apt: +# timeout-minutes: 20 +# strategy: +# matrix: +# mpi: +# - libmpich-dev +# - libopenmpi-dev +# julia_version: +# - "1" +# # We don't need to test all combinations +# # - "1.7" +# # - "nightly" +# MPIWrapper: +# - "2.11.0" + +# fail-fast: false + +# runs-on: ubuntu-20.04 + +# env: +# JULIA_MPI_TEST_BINARY: MPItrampoline_jll +# JULIA_MPI_TEST_ABI: MPItrampoline +# MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so +# MPITRAMPOLINE_MPIEXEC: /usr/bin/mpiexec +# OMPI_MCA_btl_base_warn_component_unused: 0 +# OMPI_MCA_rmaps_base_oversubscribe: true + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - name: Install MPI via apt +# run: | +# sudo apt-get update +# sudo apt-get install $MPI +# env: +# MPI: ${{ matrix.mpi }} + +# - name: Build MPIwrapper +# run: | +# wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz +# tar xzf v${MPIWrapper}.tar.gz +# cd MPIwrapper-* +# cmake -DMPIEXEC_EXECUTABLE=mpiexec -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local . +# cmake --build . +# sudo cmake --install . +# env: +# MPIWrapper: ${{matrix.MPIWrapper}} + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: ${{ matrix.julia_version }} + +# - uses: julia-actions/cache@v2 + +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: use MPItrampoline_jll +# shell: julia --color=yes --project=test {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") +# using MPIPreferences +# MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) +# rm("test/Manifest.toml") + +# - uses: julia-actions/julia-runtest@v1 + + +# test-mpitrampoline-oneapi-linux: +# timeout-minutes: 20 +# strategy: +# matrix: +# julia_version: +# - "1" +# MPIWrapper: +# - "2.11.0" + +# fail-fast: false + +# runs-on: ubuntu-latest +# container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq + +# env: +# JULIA_MPI_TEST_BINARY: MPItrampoline_jll +# JULIA_MPI_TEST_ABI: MPItrampoline +# MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - name: Set MPITRAMPOLINE_MPIEXEC +# run: echo "MPITRAMPOLINE_MPIEXEC=$(which mpiexec)" >> "${GITHUB_ENV}" + +# - name: Build MPIwrapper +# run: | +# apt-get update +# apt-get install -y wget cmake gcc g++ gfortran python3 +# wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz +# tar xzf v${MPIWrapper}.tar.gz +# cd MPIwrapper-* +# cmake \ +# -DMPIEXEC_EXECUTABLE=mpiexec \ +# -DCMAKE_BUILD_TYPE=Debug \ +# -DCMAKE_INSTALL_PREFIX=/usr/local \ +# . +# cmake --build . +# cmake --install . +# env: +# MPIWrapper: ${{matrix.MPIWrapper}} + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: ${{ matrix.julia_version }} + +# - uses: julia-actions/cache@v2 + +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") + +# - name: use MPItrampoline_jll +# shell: julia --color=yes --project=test {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") +# using MPIPreferences +# MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) +# rm("test/Manifest.toml") + +# - uses: julia-actions/julia-runtest@v1 + + +# test-spack-mvapich: +# timeout-minutes: 20 +# strategy: +# matrix: +# include: +# - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich2-jq +# name: "MVAPICH 2.3.7" +# - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich3-jq +# name: "MVAPICH 3.0" + +# fail-fast: false + +# runs-on: ubuntu-22.04 +# container: ${{ matrix.container }} +# name: "Test ${{ matrix.name }}" + +# env: +# JULIA_MPI_TEST_BINARY: system +# JULIA_MPI_TEST_EXCLUDE: test_spawn.jl +# MV2_SMP_USE_CMA: 0 +# # Work around issue with affinity not set. Ref: +# # https://github.com/JuliaParallel/MPI.jl/pull/810#issuecomment-1920255386 +# MVP_ENABLE_AFFINITY: 0 + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: "1" + +# - uses: julia-actions/cache@v2 +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") +# Pkg.precompile() + +# - name: use system MPI +# shell: julia --color=yes --project=. {0} +# run: | +# using MPIPreferences +# MPIPreferences.use_system_binary() + +# - uses: julia-actions/julia-runtest@v1 + + +# # TODO: Can remove this once we can use OpenMPI_jll v5 +# test-spack-openmpi5: +# timeout-minutes: 20 +# strategy: +# matrix: +# include: +# - container: ghcr.io/juliaparallel/github-actions-buildcache:openmpi5-jq +# name: "OpenMPI 5.0.2" + +# fail-fast: false + +# runs-on: ubuntu-22.04 +# container: ${{ matrix.container }} +# name: "Test ${{ matrix.name }}" + +# env: +# JULIA_MPI_TEST_BINARY: system +# JULIA_MPI_TEST_ABI: OpenMPI +# # Allow running as root +# OMPI_ALLOW_RUN_AS_ROOT: 1 +# OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 +# # Allow oversubscription +# PRTE_MCA_rmaps_default_mapping_policy: :oversubscribe + +# steps: +# - name: Checkout +# uses: actions/checkout@v4 + +# - uses: julia-actions/setup-julia@v1 +# with: +# version: "1" + +# - uses: julia-actions/cache@v2 +# - name: add MPIPreferences +# shell: julia --color=yes --project=. {0} +# run: | +# using Pkg +# Pkg.develop(path="lib/MPIPreferences") +# Pkg.precompile() + +# - name: use system MPI +# shell: julia --color=yes --project=. {0} +# run: | +# using MPIPreferences +# MPIPreferences.use_system_binary() + +# - uses: julia-actions/julia-runtest@v1 From 57820cfe8654411273bb265a8bf4afe53c6fcf3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Fri, 6 Sep 2024 10:12:00 +0100 Subject: [PATCH 4/8] Revert "Point MPICH manpages again to "latest" version" This reverts commit 58a6d6c1634bbf44b5c1e6fb4db82d71d214d51e. --- src/MPI.jl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/MPI.jl b/src/MPI.jl index e0cf92f05..530412430 100644 --- a/src/MPI.jl +++ b/src/MPI.jl @@ -19,12 +19,14 @@ end function _doc_external(fname) - mpich = "[MPICH](https://www.mpich.org/static/docs/latest/www3/$(fname).html)" + # Ideally we'd like to use the "latest" version of the docs, but MPICH v4.0 + # at the moment seems to be the last version with all the docstrings. + mpich = "[MPICH](https://www.mpich.org/static/docs/v4.0/www3/$(fname).html)" # All the *_c functions are undocumented in OpenMPI website if !endswith(string(fname), "_c") openmpi = "[OpenMPI](https://docs.open-mpi.org/en/main/man-openmpi/man3/$(fname).3.html)" # Few docstrings aren't available for MPICH - if startswith(string(fname), "MPI_Type_create_f90_") + if fname in (:MPI_Status_c2f, :MPI_Status_f2c) || startswith(string(fname), "MPI_Type_create_f90_") return """ - `$fname` man page: $(openmpi) """ From 7ada68394127d453751f7e8f5dc299bf1e2960dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Fri, 6 Sep 2024 10:29:56 +0100 Subject: [PATCH 5/8] [docs] Use empty user agent for linkchecks --- docs/make.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/make.jl b/docs/make.jl index 2bfbf8954..a5401b0b8 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -79,6 +79,7 @@ makedocs( "refindex.md", ], linkcheck = true, + linkcheck_useragent = nothing, ) deploydocs( From 34d007af3ad1928618e7f9dd8ae1d7a09e66a72d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Fri, 6 Sep 2024 10:40:23 +0100 Subject: [PATCH 6/8] Revert "[DROP ME] temporarily skip tests" This reverts commit 1358816973ddba46bdd297eaecffcb385f55dcfb. --- .github/workflows/UnitTests.yml | 1256 +++++++++++++++---------------- 1 file changed, 628 insertions(+), 628 deletions(-) diff --git a/.github/workflows/UnitTests.yml b/.github/workflows/UnitTests.yml index bcb342c9c..d8cb45900 100644 --- a/.github/workflows/UnitTests.yml +++ b/.github/workflows/UnitTests.yml @@ -1,628 +1,628 @@ -# name: Unit Tests - -# on: -# pull_request: -# paths: -# - '.github/workflows/UnitTests.yml' -# - 'bin/**' -# - 'deps/**' -# - 'src/**' -# - 'test/**' -# - 'lib/**' -# push: -# branches: -# - master -# - release-* -# paths: -# - '.github/workflows/UnitTests.yml' -# - 'bin/**' -# - 'deps/**' -# - 'src/**' -# - 'test/**' -# - 'lib/**' - -# concurrency: -# # Skip intermediate builds: always. -# # Cancel intermediate builds: always. -# group: ${{ github.workflow }}-${{ github.ref }} -# cancel-in-progress: true - -# jobs: -# test-default: -# timeout-minutes: 20 -# strategy: -# matrix: -# os: -# - macos-13 -# - ubuntu-latest -# - windows-latest -# julia_version: -# - "1.6" -# - "1" -# - "nightly" -# julia_arch: [x64, x86] -# exclude: -# - os: macos-13 -# julia_arch: x86 -# include: -# - os: macos-14 -# julia_arch: "aarch64" -# julia_version: "1" - -# fail-fast: false - -# runs-on: ${{ matrix.os }} - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - uses: julia-actions/setup-julia@v1 -# with: -# arch: ${{ matrix.julia_arch }} -# version: ${{ matrix.julia_version }} -# - uses: julia-actions/cache@v2 - -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - uses: julia-actions/julia-runtest@v1 -# - uses: julia-actions/julia-processcoverage@v1 -# - uses: codecov/codecov-action@v4 -# with: -# token: ${{ secrets.CODECOV_TOKEN }} -# files: lcov.info -# - uses: julia-actions/julia-uploadcoveralls@v1 -# continue-on-error: true -# env: -# COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} - -# test-openmpi-jll: -# timeout-minutes: 20 -# strategy: -# matrix: -# os: -# - macos-13 -# - ubuntu-latest -# julia_version: -# - "1.6" -# - "1" -# - "nightly" -# julia_arch: [x64, x86] -# exclude: -# - os: macos-13 -# julia_arch: x86 - -# fail-fast: false -# env: -# JULIA_MPI_TEST_BINARY: OpenMPI_jll -# JULIA_MPI_TEST_ABI: OpenMPI -# OMPI_MCA_btl_base_warn_component_unused: 0 -# OMPI_MCA_rmaps_base_oversubscribe: true - -# runs-on: ${{ matrix.os }} - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - uses: julia-actions/setup-julia@v1 -# with: -# arch: ${{ matrix.julia_arch }} -# version: ${{ matrix.julia_version }} -# - uses: julia-actions/cache@v2 - -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: use OpenMPI_jll -# shell: julia --color=yes --project=test {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") -# using MPIPreferences -# MPIPreferences.use_jll_binary("OpenMPI_jll", export_prefs=true) -# rm("test/Manifest.toml") - -# - uses: julia-actions/julia-runtest@v1 - -# test-system-brew: -# timeout-minutes: 20 -# strategy: -# matrix: -# os: -# - macos-13 -# - macos-14 -# mpi: -# - mpich -# - openmpi -# julia_version: -# - "1" -# julia_arch: -# - "x64" -# - "aarch64" -# exclude: -# - os: macos-13 -# julia_arch: "aarch64" -# - os: macos-14 -# julia_arch: "x64" - -# fail-fast: false - -# runs-on: ${{ matrix.os }} -# env: -# JULIA_MPI_TEST_BINARY: system -# ZES_ENABLE_SYSMAN: 1 # https://github.com/open-mpi/ompi/issues/10142 - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - name: Install MPI via homebrew -# run: | -# brew install "${{ matrix.mpi }}" - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: ${{ matrix.julia_version }} -# arch: ${{ matrix.julia_arch }} - -# - uses: julia-actions/cache@v2 -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: use system MPI -# shell: julia --color=yes --project=. {0} -# run: | -# using MPIPreferences -# mpi_prefix = readchomp(`brew --prefix ${{ matrix.mpi }}`) -# libdir = joinpath(mpi_prefix, "lib") -# MPIPreferences.use_system_binary(; extra_paths=[libdir]) - -# - uses: julia-actions/julia-runtest@v1 -# env: -# # TODO: Only disable this test for MPICH. OpenMPI works fine. -# JULIA_MPI_TEST_DISABLE_REDUCE_ON_APPLE: 1 - - -# test-system-apt: -# timeout-minutes: 20 -# strategy: -# matrix: -# mpi: -# - libmpich-dev -# - libopenmpi-dev -# julia_version: -# - "1" - -# fail-fast: false - -# runs-on: ubuntu-20.04 - -# env: -# JULIA_MPI_TEST_BINARY: system -# OMPI_MCA_btl_base_warn_component_unused: 0 -# OMPI_MCA_rmaps_base_oversubscribe: true - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - name: Install MPI via apt -# run: | -# sudo apt-get update -# sudo apt-get install $MPI -# env: -# MPI: ${{ matrix.mpi }} - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: ${{ matrix.julia_version }} - -# - uses: julia-actions/cache@v2 -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: use system MPI -# shell: julia --color=yes --project=. {0} -# run: | -# using MPIPreferences -# MPIPreferences.use_system_binary() - -# - uses: julia-actions/julia-runtest@v1 - -# test-intel-linux: -# timeout-minutes: 20 -# strategy: -# matrix: -# include: -# - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-mpi-jq -# name: "Intel MPI 2019.9.304" -# - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq -# name: "Intel oneAPI MPI 2021.11.0" - -# fail-fast: false - -# runs-on: ubuntu-latest -# container: ${{ matrix.container }} -# name: "Test ${{ matrix.name }}" - -# env: -# JULIA_MPI_TEST_BINARY: system -# JULIA_MPI_TEST_ABI: MPICH - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: "1" - -# - uses: julia-actions/cache@v2 -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: use system MPI -# run: | -# julia --color=yes --project=. -e ' -# using MPIPreferences -# MPIPreferences.use_system_binary()' - -# - uses: julia-actions/julia-runtest@v1 - - -# test-system-msmpi: -# timeout-minutes: 20 -# strategy: -# matrix: -# julia_version: -# - "1" - -# fail-fast: false - -# runs-on: windows-latest - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - name: Download Microsoft MPI -# run: (new-object net.webclient).DownloadFile("https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe", "msmpisetup.exe") -# shell: powershell - -# - name: Install Microsoft MPI -# run: msmpisetup.exe -unattend -minimal -# shell: cmd - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: ${{ matrix.julia_version }} - -# - uses: julia-actions/cache@v2 -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: add MPIPreferences, use system -# shell: julia --color=yes --project=test {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") -# using MPIPreferences -# MPIPreferences.use_system_binary(; -# export_prefs=true, -# mpiexec="C:\\Program Files\\Microsoft MPI\\Bin\\mpiexec" -# ) -# rm("test/Manifest.toml") - -# - uses: julia-actions/julia-runtest@v1 - - -# test-mpitrampoline-jll: -# timeout-minutes: 20 -# strategy: -# matrix: -# os: -# - macos-13 -# - ubuntu-latest -# mpi: [mpitrampoline] -# julia_version: -# - "1.6" -# - "1" -# - "nightly" -# julia_arch: -# - x64 -# - x86 -# exclude: -# - os: macos-13 -# julia_arch: x86 - -# fail-fast: false - -# runs-on: ${{ matrix.os }} -# env: -# JULIA_MPI_TEST_BINARY: MPItrampoline_jll -# JULIA_MPI_TEST_ABI: MPItrampoline - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: ${{ matrix.julia_version }} - -# - uses: julia-actions/cache@v2 - -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: use MPItrampoline_jll -# shell: julia --color=yes --project=test {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") -# using MPIPreferences -# MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) -# rm("test/Manifest.toml") - -# - uses: julia-actions/julia-runtest@v1 - - -# test-mpitrampoline-system-apt: -# timeout-minutes: 20 -# strategy: -# matrix: -# mpi: -# - libmpich-dev -# - libopenmpi-dev -# julia_version: -# - "1" -# # We don't need to test all combinations -# # - "1.7" -# # - "nightly" -# MPIWrapper: -# - "2.11.0" - -# fail-fast: false - -# runs-on: ubuntu-20.04 - -# env: -# JULIA_MPI_TEST_BINARY: MPItrampoline_jll -# JULIA_MPI_TEST_ABI: MPItrampoline -# MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so -# MPITRAMPOLINE_MPIEXEC: /usr/bin/mpiexec -# OMPI_MCA_btl_base_warn_component_unused: 0 -# OMPI_MCA_rmaps_base_oversubscribe: true - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - name: Install MPI via apt -# run: | -# sudo apt-get update -# sudo apt-get install $MPI -# env: -# MPI: ${{ matrix.mpi }} - -# - name: Build MPIwrapper -# run: | -# wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz -# tar xzf v${MPIWrapper}.tar.gz -# cd MPIwrapper-* -# cmake -DMPIEXEC_EXECUTABLE=mpiexec -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local . -# cmake --build . -# sudo cmake --install . -# env: -# MPIWrapper: ${{matrix.MPIWrapper}} - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: ${{ matrix.julia_version }} - -# - uses: julia-actions/cache@v2 - -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: use MPItrampoline_jll -# shell: julia --color=yes --project=test {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") -# using MPIPreferences -# MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) -# rm("test/Manifest.toml") - -# - uses: julia-actions/julia-runtest@v1 - - -# test-mpitrampoline-oneapi-linux: -# timeout-minutes: 20 -# strategy: -# matrix: -# julia_version: -# - "1" -# MPIWrapper: -# - "2.11.0" - -# fail-fast: false - -# runs-on: ubuntu-latest -# container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq - -# env: -# JULIA_MPI_TEST_BINARY: MPItrampoline_jll -# JULIA_MPI_TEST_ABI: MPItrampoline -# MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - name: Set MPITRAMPOLINE_MPIEXEC -# run: echo "MPITRAMPOLINE_MPIEXEC=$(which mpiexec)" >> "${GITHUB_ENV}" - -# - name: Build MPIwrapper -# run: | -# apt-get update -# apt-get install -y wget cmake gcc g++ gfortran python3 -# wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz -# tar xzf v${MPIWrapper}.tar.gz -# cd MPIwrapper-* -# cmake \ -# -DMPIEXEC_EXECUTABLE=mpiexec \ -# -DCMAKE_BUILD_TYPE=Debug \ -# -DCMAKE_INSTALL_PREFIX=/usr/local \ -# . -# cmake --build . -# cmake --install . -# env: -# MPIWrapper: ${{matrix.MPIWrapper}} - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: ${{ matrix.julia_version }} - -# - uses: julia-actions/cache@v2 - -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") - -# - name: use MPItrampoline_jll -# shell: julia --color=yes --project=test {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") -# using MPIPreferences -# MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) -# rm("test/Manifest.toml") - -# - uses: julia-actions/julia-runtest@v1 - - -# test-spack-mvapich: -# timeout-minutes: 20 -# strategy: -# matrix: -# include: -# - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich2-jq -# name: "MVAPICH 2.3.7" -# - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich3-jq -# name: "MVAPICH 3.0" - -# fail-fast: false - -# runs-on: ubuntu-22.04 -# container: ${{ matrix.container }} -# name: "Test ${{ matrix.name }}" - -# env: -# JULIA_MPI_TEST_BINARY: system -# JULIA_MPI_TEST_EXCLUDE: test_spawn.jl -# MV2_SMP_USE_CMA: 0 -# # Work around issue with affinity not set. Ref: -# # https://github.com/JuliaParallel/MPI.jl/pull/810#issuecomment-1920255386 -# MVP_ENABLE_AFFINITY: 0 - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: "1" - -# - uses: julia-actions/cache@v2 -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") -# Pkg.precompile() - -# - name: use system MPI -# shell: julia --color=yes --project=. {0} -# run: | -# using MPIPreferences -# MPIPreferences.use_system_binary() - -# - uses: julia-actions/julia-runtest@v1 - - -# # TODO: Can remove this once we can use OpenMPI_jll v5 -# test-spack-openmpi5: -# timeout-minutes: 20 -# strategy: -# matrix: -# include: -# - container: ghcr.io/juliaparallel/github-actions-buildcache:openmpi5-jq -# name: "OpenMPI 5.0.2" - -# fail-fast: false - -# runs-on: ubuntu-22.04 -# container: ${{ matrix.container }} -# name: "Test ${{ matrix.name }}" - -# env: -# JULIA_MPI_TEST_BINARY: system -# JULIA_MPI_TEST_ABI: OpenMPI -# # Allow running as root -# OMPI_ALLOW_RUN_AS_ROOT: 1 -# OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 -# # Allow oversubscription -# PRTE_MCA_rmaps_default_mapping_policy: :oversubscribe - -# steps: -# - name: Checkout -# uses: actions/checkout@v4 - -# - uses: julia-actions/setup-julia@v1 -# with: -# version: "1" - -# - uses: julia-actions/cache@v2 -# - name: add MPIPreferences -# shell: julia --color=yes --project=. {0} -# run: | -# using Pkg -# Pkg.develop(path="lib/MPIPreferences") -# Pkg.precompile() - -# - name: use system MPI -# shell: julia --color=yes --project=. {0} -# run: | -# using MPIPreferences -# MPIPreferences.use_system_binary() - -# - uses: julia-actions/julia-runtest@v1 +name: Unit Tests + +on: + pull_request: + paths: + - '.github/workflows/UnitTests.yml' + - 'bin/**' + - 'deps/**' + - 'src/**' + - 'test/**' + - 'lib/**' + push: + branches: + - master + - release-* + paths: + - '.github/workflows/UnitTests.yml' + - 'bin/**' + - 'deps/**' + - 'src/**' + - 'test/**' + - 'lib/**' + +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: always. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test-default: + timeout-minutes: 20 + strategy: + matrix: + os: + - macos-13 + - ubuntu-latest + - windows-latest + julia_version: + - "1.6" + - "1" + - "nightly" + julia_arch: [x64, x86] + exclude: + - os: macos-13 + julia_arch: x86 + include: + - os: macos-14 + julia_arch: "aarch64" + julia_version: "1" + + fail-fast: false + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: julia-actions/setup-julia@v1 + with: + arch: ${{ matrix.julia_arch }} + version: ${{ matrix.julia_version }} + - uses: julia-actions/cache@v2 + + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - uses: julia-actions/julia-runtest@v1 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: lcov.info + - uses: julia-actions/julia-uploadcoveralls@v1 + continue-on-error: true + env: + COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + + test-openmpi-jll: + timeout-minutes: 20 + strategy: + matrix: + os: + - macos-13 + - ubuntu-latest + julia_version: + - "1.6" + - "1" + - "nightly" + julia_arch: [x64, x86] + exclude: + - os: macos-13 + julia_arch: x86 + + fail-fast: false + env: + JULIA_MPI_TEST_BINARY: OpenMPI_jll + JULIA_MPI_TEST_ABI: OpenMPI + OMPI_MCA_btl_base_warn_component_unused: 0 + OMPI_MCA_rmaps_base_oversubscribe: true + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: julia-actions/setup-julia@v1 + with: + arch: ${{ matrix.julia_arch }} + version: ${{ matrix.julia_version }} + - uses: julia-actions/cache@v2 + + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: use OpenMPI_jll + shell: julia --color=yes --project=test {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + using MPIPreferences + MPIPreferences.use_jll_binary("OpenMPI_jll", export_prefs=true) + rm("test/Manifest.toml") + + - uses: julia-actions/julia-runtest@v1 + + test-system-brew: + timeout-minutes: 20 + strategy: + matrix: + os: + - macos-13 + - macos-14 + mpi: + - mpich + - openmpi + julia_version: + - "1" + julia_arch: + - "x64" + - "aarch64" + exclude: + - os: macos-13 + julia_arch: "aarch64" + - os: macos-14 + julia_arch: "x64" + + fail-fast: false + + runs-on: ${{ matrix.os }} + env: + JULIA_MPI_TEST_BINARY: system + ZES_ENABLE_SYSMAN: 1 # https://github.com/open-mpi/ompi/issues/10142 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install MPI via homebrew + run: | + brew install "${{ matrix.mpi }}" + + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.julia_version }} + arch: ${{ matrix.julia_arch }} + + - uses: julia-actions/cache@v2 + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: use system MPI + shell: julia --color=yes --project=. {0} + run: | + using MPIPreferences + mpi_prefix = readchomp(`brew --prefix ${{ matrix.mpi }}`) + libdir = joinpath(mpi_prefix, "lib") + MPIPreferences.use_system_binary(; extra_paths=[libdir]) + + - uses: julia-actions/julia-runtest@v1 + env: + # TODO: Only disable this test for MPICH. OpenMPI works fine. + JULIA_MPI_TEST_DISABLE_REDUCE_ON_APPLE: 1 + + + test-system-apt: + timeout-minutes: 20 + strategy: + matrix: + mpi: + - libmpich-dev + - libopenmpi-dev + julia_version: + - "1" + + fail-fast: false + + runs-on: ubuntu-20.04 + + env: + JULIA_MPI_TEST_BINARY: system + OMPI_MCA_btl_base_warn_component_unused: 0 + OMPI_MCA_rmaps_base_oversubscribe: true + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install MPI via apt + run: | + sudo apt-get update + sudo apt-get install $MPI + env: + MPI: ${{ matrix.mpi }} + + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.julia_version }} + + - uses: julia-actions/cache@v2 + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: use system MPI + shell: julia --color=yes --project=. {0} + run: | + using MPIPreferences + MPIPreferences.use_system_binary() + + - uses: julia-actions/julia-runtest@v1 + + test-intel-linux: + timeout-minutes: 20 + strategy: + matrix: + include: + - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-mpi-jq + name: "Intel MPI 2019.9.304" + - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq + name: "Intel oneAPI MPI 2021.11.0" + + fail-fast: false + + runs-on: ubuntu-latest + container: ${{ matrix.container }} + name: "Test ${{ matrix.name }}" + + env: + JULIA_MPI_TEST_BINARY: system + JULIA_MPI_TEST_ABI: MPICH + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: julia-actions/setup-julia@v1 + with: + version: "1" + + - uses: julia-actions/cache@v2 + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: use system MPI + run: | + julia --color=yes --project=. -e ' + using MPIPreferences + MPIPreferences.use_system_binary()' + + - uses: julia-actions/julia-runtest@v1 + + + test-system-msmpi: + timeout-minutes: 20 + strategy: + matrix: + julia_version: + - "1" + + fail-fast: false + + runs-on: windows-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download Microsoft MPI + run: (new-object net.webclient).DownloadFile("https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe", "msmpisetup.exe") + shell: powershell + + - name: Install Microsoft MPI + run: msmpisetup.exe -unattend -minimal + shell: cmd + + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.julia_version }} + + - uses: julia-actions/cache@v2 + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: add MPIPreferences, use system + shell: julia --color=yes --project=test {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + using MPIPreferences + MPIPreferences.use_system_binary(; + export_prefs=true, + mpiexec="C:\\Program Files\\Microsoft MPI\\Bin\\mpiexec" + ) + rm("test/Manifest.toml") + + - uses: julia-actions/julia-runtest@v1 + + + test-mpitrampoline-jll: + timeout-minutes: 20 + strategy: + matrix: + os: + - macos-13 + - ubuntu-latest + mpi: [mpitrampoline] + julia_version: + - "1.6" + - "1" + - "nightly" + julia_arch: + - x64 + - x86 + exclude: + - os: macos-13 + julia_arch: x86 + + fail-fast: false + + runs-on: ${{ matrix.os }} + env: + JULIA_MPI_TEST_BINARY: MPItrampoline_jll + JULIA_MPI_TEST_ABI: MPItrampoline + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.julia_version }} + + - uses: julia-actions/cache@v2 + + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: use MPItrampoline_jll + shell: julia --color=yes --project=test {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + using MPIPreferences + MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) + rm("test/Manifest.toml") + + - uses: julia-actions/julia-runtest@v1 + + + test-mpitrampoline-system-apt: + timeout-minutes: 20 + strategy: + matrix: + mpi: + - libmpich-dev + - libopenmpi-dev + julia_version: + - "1" + # We don't need to test all combinations + # - "1.7" + # - "nightly" + MPIWrapper: + - "2.11.0" + + fail-fast: false + + runs-on: ubuntu-20.04 + + env: + JULIA_MPI_TEST_BINARY: MPItrampoline_jll + JULIA_MPI_TEST_ABI: MPItrampoline + MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so + MPITRAMPOLINE_MPIEXEC: /usr/bin/mpiexec + OMPI_MCA_btl_base_warn_component_unused: 0 + OMPI_MCA_rmaps_base_oversubscribe: true + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install MPI via apt + run: | + sudo apt-get update + sudo apt-get install $MPI + env: + MPI: ${{ matrix.mpi }} + + - name: Build MPIwrapper + run: | + wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz + tar xzf v${MPIWrapper}.tar.gz + cd MPIwrapper-* + cmake -DMPIEXEC_EXECUTABLE=mpiexec -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local . + cmake --build . + sudo cmake --install . + env: + MPIWrapper: ${{matrix.MPIWrapper}} + + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.julia_version }} + + - uses: julia-actions/cache@v2 + + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: use MPItrampoline_jll + shell: julia --color=yes --project=test {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + using MPIPreferences + MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) + rm("test/Manifest.toml") + + - uses: julia-actions/julia-runtest@v1 + + + test-mpitrampoline-oneapi-linux: + timeout-minutes: 20 + strategy: + matrix: + julia_version: + - "1" + MPIWrapper: + - "2.11.0" + + fail-fast: false + + runs-on: ubuntu-latest + container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-jq + + env: + JULIA_MPI_TEST_BINARY: MPItrampoline_jll + JULIA_MPI_TEST_ABI: MPItrampoline + MPITRAMPOLINE_LIB: /usr/local/lib/libmpiwrapper.so + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set MPITRAMPOLINE_MPIEXEC + run: echo "MPITRAMPOLINE_MPIEXEC=$(which mpiexec)" >> "${GITHUB_ENV}" + + - name: Build MPIwrapper + run: | + apt-get update + apt-get install -y wget cmake gcc g++ gfortran python3 + wget https://github.com/eschnett/MPIwrapper/archive/refs/tags/v${MPIWrapper}.tar.gz + tar xzf v${MPIWrapper}.tar.gz + cd MPIwrapper-* + cmake \ + -DMPIEXEC_EXECUTABLE=mpiexec \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + . + cmake --build . + cmake --install . + env: + MPIWrapper: ${{matrix.MPIWrapper}} + + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.julia_version }} + + - uses: julia-actions/cache@v2 + + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + + - name: use MPItrampoline_jll + shell: julia --color=yes --project=test {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + using MPIPreferences + MPIPreferences.use_jll_binary("MPItrampoline_jll", export_prefs=true) + rm("test/Manifest.toml") + + - uses: julia-actions/julia-runtest@v1 + + + test-spack-mvapich: + timeout-minutes: 20 + strategy: + matrix: + include: + - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich2-jq + name: "MVAPICH 2.3.7" + - container: ghcr.io/juliaparallel/github-actions-buildcache:mvapich3-jq + name: "MVAPICH 3.0" + + fail-fast: false + + runs-on: ubuntu-22.04 + container: ${{ matrix.container }} + name: "Test ${{ matrix.name }}" + + env: + JULIA_MPI_TEST_BINARY: system + JULIA_MPI_TEST_EXCLUDE: test_spawn.jl + MV2_SMP_USE_CMA: 0 + # Work around issue with affinity not set. Ref: + # https://github.com/JuliaParallel/MPI.jl/pull/810#issuecomment-1920255386 + MVP_ENABLE_AFFINITY: 0 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: julia-actions/setup-julia@v1 + with: + version: "1" + + - uses: julia-actions/cache@v2 + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + Pkg.precompile() + + - name: use system MPI + shell: julia --color=yes --project=. {0} + run: | + using MPIPreferences + MPIPreferences.use_system_binary() + + - uses: julia-actions/julia-runtest@v1 + + + # TODO: Can remove this once we can use OpenMPI_jll v5 + test-spack-openmpi5: + timeout-minutes: 20 + strategy: + matrix: + include: + - container: ghcr.io/juliaparallel/github-actions-buildcache:openmpi5-jq + name: "OpenMPI 5.0.2" + + fail-fast: false + + runs-on: ubuntu-22.04 + container: ${{ matrix.container }} + name: "Test ${{ matrix.name }}" + + env: + JULIA_MPI_TEST_BINARY: system + JULIA_MPI_TEST_ABI: OpenMPI + # Allow running as root + OMPI_ALLOW_RUN_AS_ROOT: 1 + OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 + # Allow oversubscription + PRTE_MCA_rmaps_default_mapping_policy: :oversubscribe + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: julia-actions/setup-julia@v1 + with: + version: "1" + + - uses: julia-actions/cache@v2 + - name: add MPIPreferences + shell: julia --color=yes --project=. {0} + run: | + using Pkg + Pkg.develop(path="lib/MPIPreferences") + Pkg.precompile() + + - name: use system MPI + shell: julia --color=yes --project=. {0} + run: | + using MPIPreferences + MPIPreferences.use_system_binary() + + - uses: julia-actions/julia-runtest@v1 From ca172f276ba1fe4a5e727d2a816989389e24d3eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Fri, 6 Sep 2024 10:42:44 +0100 Subject: [PATCH 7/8] [docs] Require Documenter.jl v1.7 --- docs/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Project.toml b/docs/Project.toml index 95b62c018..f0b02b67a 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -4,6 +4,6 @@ MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" MPIPreferences = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" [compat] -Documenter = "1" +Documenter = "1.7" MPIPreferences = "0.1" MPI = "0.20" From f24961cba80c42b7a346cdfdba7b01210e59ce40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mos=C3=A8=20Giordano?= Date: Fri, 6 Sep 2024 10:48:48 +0100 Subject: [PATCH 8/8] [docs] Run linkchecks only on CI --- docs/make.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/make.jl b/docs/make.jl index a5401b0b8..69e14c99a 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -78,7 +78,9 @@ makedocs( ], "refindex.md", ], - linkcheck = true, + # Run linkcheck tests only on CI, to speed up building of documentation locally. If one + # wants to run the linkchecks locally they can set the environment variable `CI=true`. + linkcheck = get(ENV, "CI", "false") == "true", linkcheck_useragent = nothing, )