From c4f4d5b8b95b3f5f25c70014bd6fcaeadaf71d51 Mon Sep 17 00:00:00 2001 From: Lourens Veen Date: Thu, 1 Aug 2024 15:10:01 +0200 Subject: [PATCH 1/3] Fix macOS 14 CI --- .github/workflows/ci_macos14_clang.yaml | 7 ++++--- .github/workflows/ci_macos14_gcc_gfortran.yaml | 11 ++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci_macos14_clang.yaml b/.github/workflows/ci_macos14_clang.yaml index c55ba322..42858916 100644 --- a/.github/workflows/ci_macos14_clang.yaml +++ b/.github/workflows/ci_macos14_clang.yaml @@ -26,9 +26,10 @@ jobs: run: | HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install openmpi HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install pkg-config - python3 -m pip install --upgrade pip - pip3 install tox tox-gh-actions + python3 -m venv ~/tox_venv + . ~/tox_venv/bin/activate && python3 -m pip install --upgrade pip + . ~/tox_venv/bin/activate && python3 -m pip install tox tox-gh-actions - name: Run all tests on macOS Sonoma 14 with Clang - run: cd ${GITHUB_WORKSPACE} && make test test_examples + run: cd ${GITHUB_WORKSPACE} && PATH=$PATH:~/tox_venv/bin make test test_examples diff --git a/.github/workflows/ci_macos14_gcc_gfortran.yaml b/.github/workflows/ci_macos14_gcc_gfortran.yaml index d1aab066..8a586f88 100644 --- a/.github/workflows/ci_macos14_gcc_gfortran.yaml +++ b/.github/workflows/ci_macos14_gcc_gfortran.yaml @@ -19,16 +19,17 @@ jobs: - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: latest + xcode-version: 15.3 - name: Install dependencies run: | - HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install gcc + HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install gcc@14 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install openmpi HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install pkg-config - python3 -m pip install --upgrade pip - pip3 install tox tox-gh-actions + python3 -m venv ~/tox_venv + . ~/tox_venv/bin/activate && python3 -m pip install --upgrade pip + . ~/tox_venv/bin/activate && pip3 install tox tox-gh-actions - name: Run all tests - run: cd ${GITHUB_WORKSPACE} && CXX=g++-12 OMPI_CXX=g++-12 FC=gfortran-12 OMPI_FC=gfortran-12 make test test_examples + run: cd ${GITHUB_WORKSPACE} && PATH=$PATH:~/tox_venv/bin CXX=g++-14 OMPI_CXX=g++-14 FC=gfortran-14 OMPI_FC=gfortran-14 make test test_examples From 3f3538e895a97759b5bb49f5de323aba733dd4ee Mon Sep 17 00:00:00 2001 From: Lourens Veen Date: Fri, 2 Aug 2024 16:32:40 +0200 Subject: [PATCH 2/3] Fix compiling with GCC 14 --- libmuscle/cpp/src/libmuscle/tests/test_instance.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmuscle/cpp/src/libmuscle/tests/test_instance.cpp b/libmuscle/cpp/src/libmuscle/tests/test_instance.cpp index 3471ffc4..7ff08ef0 100644 --- a/libmuscle/cpp/src/libmuscle/tests/test_instance.cpp +++ b/libmuscle/cpp/src/libmuscle/tests/test_instance.cpp @@ -200,7 +200,7 @@ struct libmuscle_instance_base : ::testing::Test, ConnectedPortManagerFixture { std::vector()); MockSettingsManager::return_value.get_setting.side_effect = []( - Reference const &, Reference const &) -> SettingValue { + Reference const &, Reference const &) -> const SettingValue & { throw std::out_of_range("No settings set in mock, unset or replace side_effect"); }; } From 29ba6ed3df3a28c15cbb94aac5105faff636c3e1 Mon Sep 17 00:00:00 2001 From: Lourens Veen Date: Fri, 2 Aug 2024 16:48:15 +0200 Subject: [PATCH 3/3] Update CI from Ubuntu 23.04 to 24.04 --- .../workflows/{ci_ubuntu23.04.yaml => ci_ubuntu24.04.yaml} | 6 +++--- ...ci_ubuntu23.04_clang.yaml => ci_ubuntu24.04_clang.yaml} | 6 +++--- ...ci_ubuntu23.04_intel.yaml => ci_ubuntu24.04_intel.yaml} | 7 +++---- 3 files changed, 9 insertions(+), 10 deletions(-) rename .github/workflows/{ci_ubuntu23.04.yaml => ci_ubuntu24.04.yaml} (85%) rename .github/workflows/{ci_ubuntu23.04_clang.yaml => ci_ubuntu24.04_clang.yaml} (84%) rename .github/workflows/{ci_ubuntu23.04_intel.yaml => ci_ubuntu24.04_intel.yaml} (86%) diff --git a/.github/workflows/ci_ubuntu23.04.yaml b/.github/workflows/ci_ubuntu24.04.yaml similarity index 85% rename from .github/workflows/ci_ubuntu23.04.yaml rename to .github/workflows/ci_ubuntu24.04.yaml index 5113acf9..3a1707e1 100644 --- a/.github/workflows/ci_ubuntu23.04.yaml +++ b/.github/workflows/ci_ubuntu24.04.yaml @@ -1,6 +1,6 @@ # Run Continuous Integration for the latest Ubuntu release # This mainly checks for issues/regressions in the native build -name: native_compatibility_ubuntu23.04 +name: native_compatibility_ubuntu24.04 on: schedule: - cron: '30 7 * * 6' @@ -16,5 +16,5 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Run tests on Ubuntu 23.04 - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" --env LC_ALL=C.UTF-8 --env LANG=C.UTF-8 --env DEBIAN_FRONTEND=noninteractive ubuntu:23.04 /bin/bash -c 'apt-get update && apt-get -y dist-upgrade && apt-get -y install build-essential cmake gfortran git valgrind libopenmpi-dev pkg-config python3 python3-pip python3-venv curl && apt-get -y remove libssl-dev && useradd -m -d /home/muscle3 muscle3 && su muscle3 -c -- "cp -r --preserve=mode /workspace /home/muscle3/muscle3" && su muscle3 -c -- "cd /home/muscle3/muscle3 && make test_examples"' + - name: Run tests on Ubuntu 24.04 + run: docker run -v "${GITHUB_WORKSPACE}:/workspace" --env LC_ALL=C.UTF-8 --env LANG=C.UTF-8 --env DEBIAN_FRONTEND=noninteractive ubuntu:24.04 /bin/bash -c 'apt-get update && apt-get -y dist-upgrade && apt-get -y install build-essential cmake gfortran git valgrind libopenmpi-dev pkg-config python3 python3-pip python3-venv curl && apt-get -y remove libssl-dev && useradd -m -d /home/muscle3 muscle3 && su muscle3 -c -- "cp -r --preserve=mode /workspace /home/muscle3/muscle3" && su muscle3 -c -- "cd /home/muscle3/muscle3 && make test_examples"' diff --git a/.github/workflows/ci_ubuntu23.04_clang.yaml b/.github/workflows/ci_ubuntu24.04_clang.yaml similarity index 84% rename from .github/workflows/ci_ubuntu23.04_clang.yaml rename to .github/workflows/ci_ubuntu24.04_clang.yaml index 922edf5d..c532943a 100644 --- a/.github/workflows/ci_ubuntu23.04_clang.yaml +++ b/.github/workflows/ci_ubuntu24.04_clang.yaml @@ -1,6 +1,6 @@ # Run Continuous Integration for the latest Ubuntu release # This mainly checks for issues/regressions in the native build -name: native_compatibility_ubuntu23.04_clang +name: native_compatibility_ubuntu24.04_clang on: schedule: - cron: '30 6 * * 6' @@ -16,5 +16,5 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Run tests on Ubuntu 23.04 with Clang - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" --env LC_ALL=C.UTF-8 --env LANG=C.UTF-8 --env DEBIAN_FRONTEND=noninteractive ubuntu:23.04 /bin/bash -c 'apt-get update && apt-get -y dist-upgrade && apt-get -y install build-essential clang cmake gfortran git valgrind libopenmpi-dev pkg-config python3 python3-pip python3-venv curl && apt-get -y remove libssl-dev && useradd -m -d /home/muscle3 muscle3 && su muscle3 -c -- "cp -r --preserve=mode /workspace /home/muscle3/muscle3" && su muscle3 -c -- "cd /home/muscle3/muscle3 && CXXFLAGS=-fPIE OMPI_CXX=clang++ CXX=clang++ make test_examples"' + - name: Run tests on Ubuntu 24.04 with Clang + run: docker run -v "${GITHUB_WORKSPACE}:/workspace" --env LC_ALL=C.UTF-8 --env LANG=C.UTF-8 --env DEBIAN_FRONTEND=noninteractive ubuntu:24.04 /bin/bash -c 'apt-get update && apt-get -y dist-upgrade && apt-get -y install build-essential clang cmake gfortran git valgrind libopenmpi-dev pkg-config python3 python3-pip python3-venv curl && apt-get -y remove libssl-dev && useradd -m -d /home/muscle3 muscle3 && su muscle3 -c -- "cp -r --preserve=mode /workspace /home/muscle3/muscle3" && su muscle3 -c -- "cd /home/muscle3/muscle3 && CXXFLAGS=-fPIE OMPI_CXX=clang++ CXX=clang++ make test_examples"' diff --git a/.github/workflows/ci_ubuntu23.04_intel.yaml b/.github/workflows/ci_ubuntu24.04_intel.yaml similarity index 86% rename from .github/workflows/ci_ubuntu23.04_intel.yaml rename to .github/workflows/ci_ubuntu24.04_intel.yaml index 8b6051c9..c6279779 100644 --- a/.github/workflows/ci_ubuntu23.04_intel.yaml +++ b/.github/workflows/ci_ubuntu24.04_intel.yaml @@ -1,6 +1,6 @@ # Run Continuous Integration for the latest Ubuntu release # This mainly checks for issues/regressions in the native build -name: native_compatibility_ubuntu23.04_intel +name: native_compatibility_ubuntu24.04_intel on: schedule: - cron: '0 7 * * 6' @@ -8,7 +8,6 @@ on: branches: - 'release-*' - fix_native_compatibility_ci - - issue-25-intel-compiler-support jobs: build: runs-on: ubuntu-latest @@ -17,5 +16,5 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Run tests on Ubuntu 23.04 with the Intel compiler - run: docker run -v "${GITHUB_WORKSPACE}:/workspace" --env LC_ALL=C.UTF-8 --env LANG=C.UTF-8 --env DEBIAN_FRONTEND=noninteractive ubuntu:23.04 /bin/bash -c 'apt-get update && apt-get -y install wget && wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB && mv GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB /etc/apt/trusted.gpg.d/intel-sw-products.asc && echo "deb https://apt.repos.intel.com/oneapi all main" >/etc/apt/sources.list.d/oneAPI.list && apt-get update && apt-get -y dist-upgrade && apt-get -y install build-essential cmake git valgrind pkg-config python3 python3-pip python3-venv curl intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-fortran intel-oneapi-mpi-devel && apt-get -y remove libssl-dev && useradd -m -d /home/muscle3 muscle3 && su muscle3 -c -- "cp -r --preserve=mode /workspace /home/muscle3/muscle3" && su muscle3 -c -- "cd /home/muscle3/muscle3 && . /opt/intel/oneapi/setvars.sh && MPICXX=\"mpiicpc -cxx=icpx\" CXX=icpx MPIFC=\"mpiifort -fc=ifx\" FC=ifx make test_examples"' + - name: Run tests on Ubuntu 24.04 with the Intel compiler + run: docker run -v "${GITHUB_WORKSPACE}:/workspace" --env LC_ALL=C.UTF-8 --env LANG=C.UTF-8 --env DEBIAN_FRONTEND=noninteractive ubuntu:24.04 /bin/bash -c 'apt-get update && apt-get -y install wget && wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB && mv GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB /etc/apt/trusted.gpg.d/intel-sw-products.asc && echo "deb https://apt.repos.intel.com/oneapi all main" >/etc/apt/sources.list.d/oneAPI.list && apt-get update && apt-get -y dist-upgrade && apt-get -y install build-essential cmake git valgrind pkg-config python3 python3-pip python3-venv curl intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-fortran intel-oneapi-mpi-devel && apt-get -y remove libssl-dev && useradd -m -d /home/muscle3 muscle3 && su muscle3 -c -- "cp -r --preserve=mode /workspace /home/muscle3/muscle3" && su muscle3 -c -- "cd /home/muscle3/muscle3 && . /opt/intel/oneapi/setvars.sh && MPICXX=\"mpiicpc -cxx=icpx\" CXX=icpx MPIFC=\"mpiifort -fc=ifx\" FC=ifx make test_examples"'