diff --git a/.github/workflows/UnitTests.yml b/.github/workflows/UnitTests.yml index abdb57164..bc0119b1d 100644 --- a/.github/workflows/UnitTests.yml +++ b/.github/workflows/UnitTests.yml @@ -28,524 +28,524 @@ concurrency: cancel-in-progress: true jobs: - test-default: - timeout-minutes: 20 - strategy: - matrix: - os: - - macos-latest - - ubuntu-latest - - windows-latest - julia_version: - - "1.6" - - "1" - - "nightly" - julia_arch: [x64, x86] - exclude: - - os: macos-latest - julia_arch: x86 - - fail-fast: false - - runs-on: ${{ matrix.os }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - uses: julia-actions/setup-julia@latest - with: - arch: ${{ matrix.julia_arch }} - version: ${{ matrix.julia_version }} - - uses: julia-actions/cache@v1 - - - name: add MPIPreferences - shell: julia --color=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - uses: julia-actions/julia-runtest@latest - - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v3 - with: - 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-latest - - ubuntu-latest - julia_version: - - "1.6" - - "1" - - "nightly" - julia_arch: [x64, x86] - exclude: - - os: macos-latest - 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@latest - with: - arch: ${{ matrix.julia_arch }} - version: ${{ matrix.julia_version }} - - uses: julia-actions/cache@v1 - - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use OpenMPI_jll - shell: julia --color=yes --check-bounds=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@latest - - test-system-brew: - timeout-minutes: 20 - strategy: - matrix: - mpi: - - mpich - - openmpi - julia_version: - - "1" - - fail-fast: false - - runs-on: macos-latest - 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 $MPI - env: - MPI: ${{ matrix.mpi }} - - - uses: julia-actions/setup-julia@latest - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v1 - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use system MPI - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using MPIPreferences - MPIPreferences.use_system_binary() - - - uses: julia-actions/julia-runtest@latest - 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@latest - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v1 - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use system MPI - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using MPIPreferences - MPIPreferences.use_system_binary() - - - uses: julia-actions/julia-runtest@latest - - test-intel-linux: - timeout-minutes: 20 - strategy: - matrix: - julia_version: - - "1" - - fail-fast: false - - runs-on: ubuntu-latest - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-mpi-2019.9.304-ecfipz6mxgepmrkwp5dl5oohion5m54r.spack - - 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: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v1 - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use system MPI - run: | - julia --color=yes --check-bounds=yes --project=. -e ' - using MPIPreferences - MPIPreferences.use_system_binary()' - - - uses: julia-actions/julia-runtest@latest - - - test-oneapi-linux: - timeout-minutes: 20 - strategy: - matrix: - julia_version: - - "1" - - fail-fast: false - - runs-on: ubuntu-latest - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-2021.7.0-gzc7es2p27ftwyk4sdplynlj6d54xzi6.spack - - 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: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v1 - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use system MPI - run: | - julia --color=yes --check-bounds=yes --project=. -e ' - using MPIPreferences - MPIPreferences.use_system_binary()' - - - uses: julia-actions/julia-runtest@latest - - - 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@latest - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v1 - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: add MPIPreferences, use system - shell: julia --color=yes --check-bounds=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@latest - - - test-mpitrampoline-jll: - timeout-minutes: 20 - strategy: - matrix: - os: - - macos-latest - - ubuntu-latest - mpi: [mpitrampoline] - julia_version: - - "1.6" - - "1" - - "nightly" - julia_arch: - - x64 - - x86 - exclude: - - os: macos-latest - 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@latest - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v1 - - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use MPItrampoline_jll - shell: julia --color=yes --check-bounds=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@latest - - - 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.10.3" - - 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@latest - with: - version: ${{ matrix.julia_version }} - - - uses: julia-actions/cache@v1 - - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use MPItrampoline_jll - shell: julia --color=yes --check-bounds=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@latest - - - test-mpitrampoline-oneapi-linux: - timeout-minutes: 20 - strategy: - matrix: - julia_version: - - "1" - MPIWrapper: - - "2.10.3" - - fail-fast: false - - runs-on: ubuntu-latest - container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-2021.7.0-gzc7es2p27ftwyk4sdplynlj6d54xzi6.spack - - 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@v1 - - - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} - run: | - using Pkg - Pkg.develop(path="lib/MPIPreferences") - - - name: use MPItrampoline_jll - shell: julia --color=yes --check-bounds=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@latest + # test-default: + # timeout-minutes: 20 + # strategy: + # matrix: + # os: + # - macos-latest + # - ubuntu-latest + # - windows-latest + # julia_version: + # - "1.6" + # - "1" + # - "nightly" + # julia_arch: [x64, x86] + # exclude: + # - os: macos-latest + # julia_arch: x86 + + # fail-fast: false + + # runs-on: ${{ matrix.os }} + + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + + # - uses: julia-actions/setup-julia@latest + # with: + # arch: ${{ matrix.julia_arch }} + # version: ${{ matrix.julia_version }} + # - uses: julia-actions/cache@v1 + + # - name: add MPIPreferences + # shell: julia --color=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - uses: julia-actions/julia-runtest@latest + # - uses: julia-actions/julia-processcoverage@v1 + # - uses: codecov/codecov-action@v3 + # with: + # 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-latest + # - ubuntu-latest + # julia_version: + # - "1.6" + # - "1" + # - "nightly" + # julia_arch: [x64, x86] + # exclude: + # - os: macos-latest + # 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@latest + # with: + # arch: ${{ matrix.julia_arch }} + # version: ${{ matrix.julia_version }} + # - uses: julia-actions/cache@v1 + + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use OpenMPI_jll + # shell: julia --color=yes --check-bounds=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@latest + + # test-system-brew: + # timeout-minutes: 20 + # strategy: + # matrix: + # mpi: + # - mpich + # - openmpi + # julia_version: + # - "1" + + # fail-fast: false + + # runs-on: macos-latest + # 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 $MPI + # env: + # MPI: ${{ matrix.mpi }} + + # - uses: julia-actions/setup-julia@latest + # with: + # version: ${{ matrix.julia_version }} + + # - uses: julia-actions/cache@v1 + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use system MPI + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using MPIPreferences + # MPIPreferences.use_system_binary() + + # - uses: julia-actions/julia-runtest@latest + # 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@latest + # with: + # version: ${{ matrix.julia_version }} + + # - uses: julia-actions/cache@v1 + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use system MPI + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using MPIPreferences + # MPIPreferences.use_system_binary() + + # - uses: julia-actions/julia-runtest@latest + + # test-intel-linux: + # timeout-minutes: 20 + # strategy: + # matrix: + # julia_version: + # - "1" + + # fail-fast: false + + # runs-on: ubuntu-latest + # container: ghcr.io/juliaparallel/github-actions-buildcache:intel-mpi-2019.9.304-ecfipz6mxgepmrkwp5dl5oohion5m54r.spack + + # 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: ${{ matrix.julia_version }} + + # - uses: julia-actions/cache@v1 + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use system MPI + # run: | + # julia --color=yes --check-bounds=yes --project=. -e ' + # using MPIPreferences + # MPIPreferences.use_system_binary()' + + # - uses: julia-actions/julia-runtest@latest + + + # test-oneapi-linux: + # timeout-minutes: 20 + # strategy: + # matrix: + # julia_version: + # - "1" + + # fail-fast: false + + # runs-on: ubuntu-latest + # container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-2021.7.0-gzc7es2p27ftwyk4sdplynlj6d54xzi6.spack + + # 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: ${{ matrix.julia_version }} + + # - uses: julia-actions/cache@v1 + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use system MPI + # run: | + # julia --color=yes --check-bounds=yes --project=. -e ' + # using MPIPreferences + # MPIPreferences.use_system_binary()' + + # - uses: julia-actions/julia-runtest@latest + + + # 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@latest + # with: + # version: ${{ matrix.julia_version }} + + # - uses: julia-actions/cache@v1 + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: add MPIPreferences, use system + # shell: julia --color=yes --check-bounds=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@latest + + + # test-mpitrampoline-jll: + # timeout-minutes: 20 + # strategy: + # matrix: + # os: + # - macos-latest + # - ubuntu-latest + # mpi: [mpitrampoline] + # julia_version: + # - "1.6" + # - "1" + # - "nightly" + # julia_arch: + # - x64 + # - x86 + # exclude: + # - os: macos-latest + # 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@latest + # with: + # version: ${{ matrix.julia_version }} + + # - uses: julia-actions/cache@v1 + + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use MPItrampoline_jll + # shell: julia --color=yes --check-bounds=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@latest + + + # 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.10.3" + + # 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@latest + # with: + # version: ${{ matrix.julia_version }} + + # - uses: julia-actions/cache@v1 + + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use MPItrampoline_jll + # shell: julia --color=yes --check-bounds=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@latest + + + # test-mpitrampoline-oneapi-linux: + # timeout-minutes: 20 + # strategy: + # matrix: + # julia_version: + # - "1" + # MPIWrapper: + # - "2.10.3" + + # fail-fast: false + + # runs-on: ubuntu-latest + # container: ghcr.io/juliaparallel/github-actions-buildcache:intel-oneapi-mpi-2021.7.0-gzc7es2p27ftwyk4sdplynlj6d54xzi6.spack + + # 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@v1 + + # - name: add MPIPreferences + # shell: julia --color=yes --check-bounds=yes --project=. {0} + # run: | + # using Pkg + # Pkg.develop(path="lib/MPIPreferences") + + # - name: use MPItrampoline_jll + # shell: julia --color=yes --check-bounds=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@latest test-spack-mvapich: @@ -575,14 +575,14 @@ jobs: - uses: julia-actions/cache@v1 - name: add MPIPreferences - shell: julia --color=yes --check-bounds=yes --project=. {0} + shell: julia --color=yes --check-bounds=yes --depwarn=yes --code-coverage=@/__w/MPI.jl/MPI.jl --pkgimages=no --project=. {0} run: | using Pkg Pkg.develop(path="lib/MPIPreferences") Pkg.precompile() - name: use system MPI - shell: julia --color=yes --check-bounds=yes --project=. {0} + shell: julia --color=yes --check-bounds=yes --depwarn=yes --code-coverage=@/__w/MPI.jl/MPI.jl --pkgimages=no --project=. {0} run: | using MPIPreferences MPIPreferences.use_system_binary() diff --git a/test/runtests.jl b/test/runtests.jl index fba72c2e8..c2312ec30 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,3 +1,6 @@ +@show Base.julia_cmd() +exit(0) + using Test, MPI using MPIPreferences