From 3a2013f1753f8fc78906531e6ce66cddc5d9e253 Mon Sep 17 00:00:00 2001 From: "jacques.morice" Date: Thu, 25 Jun 2026 15:04:46 +0200 Subject: [PATCH 01/10] debuntu with catalyst --- .github/workflows/debuntu_docker_images.yml | 2 +- debuntu/all/Dockerfile | 47 +++++++++++++++++++-- debuntu/all/build_catalyst.sh | 27 ++++++++++++ debuntu/all/cmake_catalyst.sh | 21 +++++++++ debuntu/all/install_catalyst.sh | 12 ++++++ debuntu/mini/Dockerfile | 46 ++++++++++++++++++-- debuntu/mini/build_catalyst.sh | 27 ++++++++++++ debuntu/mini/cmake_catalyst.sh | 21 +++++++++ debuntu/mini/install_catalyst.sh | 12 ++++++ spack/3-baselibs/deps.sh | 2 +- 10 files changed, 207 insertions(+), 10 deletions(-) create mode 100644 debuntu/all/build_catalyst.sh create mode 100644 debuntu/all/cmake_catalyst.sh create mode 100644 debuntu/all/install_catalyst.sh create mode 100644 debuntu/mini/build_catalyst.sh create mode 100644 debuntu/mini/cmake_catalyst.sh create mode 100644 debuntu/mini/install_catalyst.sh diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 1725881f..a3587358 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push" - uses: pdidev/test_env/.github/actions/build@v4 + uses: jmorice91/test_env/.github/actions/build@adding_catalyst with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 75554411..ba23725d 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -36,7 +36,7 @@ RUN set -ex \ && echo "deb [ arch=amd64 ] https://repo.pdi.dev/pdi-main.${DISTRO} ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/pdi.list \ && curl --output /etc/apt/trusted.gpg.d/pdidev-archive-keyring.gpg https://repo.pdi.dev/pdi-main.${DISTRO}/pdidev-archive-keyring.gpg \ && apt-get update -y \ - && if [[ "${MPI}" = openmpi ]]; then MPI4PY=python3-mpi4py; FLOWVR=flowvr; fi\ + && if [[ "${MPI}" = openmpi ]]; then MPI4PY=python3-mpi4py; FLOWVR=flowvr; fi \ && apt-get install -y --no-install-recommends \ build-essential \ cmake \ @@ -122,18 +122,57 @@ ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} +FROM main AS builder_catalyst +USER root +RUN set -ex \ +&& export DEBIAN_FRONTEND=noninteractive \ +&& apt-get update -y \ +&& apt-get upgrade -y \ +&& apt-get install -y --no-install-recommends \ + apt-transport-https \ + ca-certificates \ + git \ + ninja-build \ +&& rm -rf /var/lib/apt/lists/* + +# copy file for building and installing catalyst +COPY cmake_catalyst.sh ${HOME} +COPY build_catalyst.sh ${HOME} +COPY install_catalyst.sh ${HOME} + +RUN chmod +x /home/ci/cmake_catalyst.sh +RUN chmod +x /home/ci/build_catalyst.sh +RUN chmod +x /home/ci/install_catalyst.sh + +RUN chown ci /home/ci/cmake_catalyst.sh +RUN chown ci /home/ci/build_catalyst.sh +RUN set -ex && bash /home/ci/cmake_catalyst.sh + +USER ci +RUN set -ex && bash /home/ci/build_catalyst.sh + +USER root +RUN set -ex && bash /home/ci/install_catalyst.sh + +USER ci # stage : PDI download for tests FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi +#RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi +RUN git -C /root clone -b catalyst-plugin --recurse-submodules https://github.com/francois-kitware/pdi /root/pdi - -# stage : test FROM main AS test COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi +COPY --from=builder_catalyst --chown=ci:ci /opt/catalyst /opt/catalyst + +WORKDIR ${HOME} +## Add env varible for catalyst lib +ENV LD_LIBRARY_PATH="/opt/catalyst/lib" +ENV catalyst_dir="/opt/catalyst/lib/cmake/catalyst-2.0" +## add to check if catalyst_dir is needed RUN export VERBOSE=1 \ && bash pdi/bin/build_and_run_all_tests diff --git a/debuntu/all/build_catalyst.sh b/debuntu/all/build_catalyst.sh new file mode 100644 index 00000000..22aa79f5 --- /dev/null +++ b/debuntu/all/build_catalyst.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -x +cmake_catalyst_required=3.26.0 +cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") + +mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) + +cmake_executable=cmake +if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then + cmake_executable=cmake +else + cmake_executable=/home/ci/local-cmake/install/bin/cmake +fi +git clone --branch v2.0.0 \ + --single-branch \ + https://gitlab.kitware.com/paraview/catalyst.git \ + ${HOME}/catalyst_clone/ +mkdir ${HOME}/catalyst_clone/ +mkdir build +git submodule update --depth=1 --init --recursive +${cmake_executable} -GNinja -DCATALYST_BUILD_TESTING:BOOL=OFF \ + -DCATALYST_USE_MPI:BOOL=ON \ + -DCATALYST_WRAP_FORTRAN:BOOL=OFF \ + -DCATALYST_WRAP_PYTHON:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX:PATH=/opt/catalyst/ \ + -S ${HOME}/catalyst_clone/ -B ${HOME}/catalyst_clone/build +${cmake_executable} --build ${HOME}/catalyst_clone/build \ No newline at end of file diff --git a/debuntu/all/cmake_catalyst.sh b/debuntu/all/cmake_catalyst.sh new file mode 100644 index 00000000..1e84c25c --- /dev/null +++ b/debuntu/all/cmake_catalyst.sh @@ -0,0 +1,21 @@ +#!/bin/bash +set -x +cmake_catalyst_required=3.26.0 +cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") + +mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) + +if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then + echo "cmake version $cmake_installed >= $cmake_catalyst_required" +else + echo "compile cmake" + git clone https://gitlab.kitware.com/cmake/cmake.git local-cmake + cd local-cmake && git checkout v3.30.0 + echo "mkdir install" + mkdir install + echo "mkdir build" + mkdir build && cd build + set -x && ../bootstrap --prefix=../install -- -DCMAKE_USE_OPENSSL=OFF + make -j 8 + make install +fi diff --git a/debuntu/all/install_catalyst.sh b/debuntu/all/install_catalyst.sh new file mode 100644 index 00000000..0c6788a7 --- /dev/null +++ b/debuntu/all/install_catalyst.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -x +cmake_catalyst_required=3.26.0 +cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") + +mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) + +if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then + cmake --install ${HOME}/catalyst_clone/build +else + /home/ci/local-cmake/install/bin/cmake --install ${HOME}/catalyst_clone/build +fi diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 1fe390c6..45c95992 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -72,21 +72,59 @@ ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} +## chmod -R o+rX . +FROM main AS builder_catalyst +USER root +RUN set -ex \ +&& export DEBIAN_FRONTEND=noninteractive \ +&& apt-get update -y \ +&& apt-get upgrade -y \ +&& apt-get install -y --no-install-recommends \ + apt-transport-https \ + ca-certificates \ + git \ + ninja-build \ +&& rm -rf /var/lib/apt/lists/* +# copy file for building and installing catalyst +COPY cmake_catalyst.sh ${HOME} +COPY build_catalyst.sh ${HOME} +COPY install_catalyst.sh ${HOME} -FROM alpine/git AS pdidl +RUN chmod +x /home/ci/cmake_catalyst.sh +RUN chmod +x /home/ci/build_catalyst.sh +RUN chmod +x /home/ci/install_catalyst.sh + +RUN chown ci /home/ci/cmake_catalyst.sh +RUN chown ci /home/ci/build_catalyst.sh -RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi +RUN set -ex && bash /home/ci/cmake_catalyst.sh +USER ci +RUN set -ex && bash /home/ci/build_catalyst.sh +USER root +RUN set -ex && bash /home/ci/install_catalyst.sh + +USER ci + +FROM alpine/git AS pdidl + +#RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi +RUN git -C /root clone -b catalyst-plugin --recurse-submodules https://github.com/francois-kitware/pdi /root/pdi FROM main AS test COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi +COPY --from=builder_catalyst --chown=ci:ci /opt/catalyst /opt/catalyst + +WORKDIR ${HOME} +## Add env varible for catalyst lib +ENV LD_LIBRARY_PATH="/opt/catalyst/lib" +ENV catalyst_dir="/opt/catalyst/lib/cmake/catalyst-2.0" +## add to check if catalyst_dir is needed RUN export VERBOSE=1 \ && bash pdi/bin/build_and_run_all_tests - - FROM main diff --git a/debuntu/mini/build_catalyst.sh b/debuntu/mini/build_catalyst.sh new file mode 100644 index 00000000..22aa79f5 --- /dev/null +++ b/debuntu/mini/build_catalyst.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -x +cmake_catalyst_required=3.26.0 +cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") + +mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) + +cmake_executable=cmake +if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then + cmake_executable=cmake +else + cmake_executable=/home/ci/local-cmake/install/bin/cmake +fi +git clone --branch v2.0.0 \ + --single-branch \ + https://gitlab.kitware.com/paraview/catalyst.git \ + ${HOME}/catalyst_clone/ +mkdir ${HOME}/catalyst_clone/ +mkdir build +git submodule update --depth=1 --init --recursive +${cmake_executable} -GNinja -DCATALYST_BUILD_TESTING:BOOL=OFF \ + -DCATALYST_USE_MPI:BOOL=ON \ + -DCATALYST_WRAP_FORTRAN:BOOL=OFF \ + -DCATALYST_WRAP_PYTHON:BOOL=ON \ + -DCMAKE_INSTALL_PREFIX:PATH=/opt/catalyst/ \ + -S ${HOME}/catalyst_clone/ -B ${HOME}/catalyst_clone/build +${cmake_executable} --build ${HOME}/catalyst_clone/build \ No newline at end of file diff --git a/debuntu/mini/cmake_catalyst.sh b/debuntu/mini/cmake_catalyst.sh new file mode 100644 index 00000000..1e84c25c --- /dev/null +++ b/debuntu/mini/cmake_catalyst.sh @@ -0,0 +1,21 @@ +#!/bin/bash +set -x +cmake_catalyst_required=3.26.0 +cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") + +mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) + +if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then + echo "cmake version $cmake_installed >= $cmake_catalyst_required" +else + echo "compile cmake" + git clone https://gitlab.kitware.com/cmake/cmake.git local-cmake + cd local-cmake && git checkout v3.30.0 + echo "mkdir install" + mkdir install + echo "mkdir build" + mkdir build && cd build + set -x && ../bootstrap --prefix=../install -- -DCMAKE_USE_OPENSSL=OFF + make -j 8 + make install +fi diff --git a/debuntu/mini/install_catalyst.sh b/debuntu/mini/install_catalyst.sh new file mode 100644 index 00000000..0c6788a7 --- /dev/null +++ b/debuntu/mini/install_catalyst.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -x +cmake_catalyst_required=3.26.0 +cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") + +mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) + +if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then + cmake --install ${HOME}/catalyst_clone/build +else + /home/ci/local-cmake/install/bin/cmake --install ${HOME}/catalyst_clone/build +fi diff --git a/spack/3-baselibs/deps.sh b/spack/3-baselibs/deps.sh index 09e95a4c..4efe8144 100644 --- a/spack/3-baselibs/deps.sh +++ b/spack/3-baselibs/deps.sh @@ -3,7 +3,7 @@ BASE_BUILDDEPS="cmake doxygen pkgconf py-setuptools" # libraries that are required in all cases BASE_LIBS="py-numpy py-pyyaml python" # libraries that depend on MPI & are required in all cases -BASE_MPILIBS="py-mpi4py veloc" +BASE_MPILIBS="py-mpi4py veloc catalyst@2.0.0+mpi+python" # libraries that are optional because embedded in PDI OPT_LIBS="paraconf py-pybind11 spdlog" # libraries that depend on MPI & are optional because embedded in PDI From d3f985ea3e119d22f1b107f1d64f2253e8177361 Mon Sep 17 00:00:00 2001 From: "jacques.morice" Date: Thu, 25 Jun 2026 16:10:43 +0200 Subject: [PATCH 02/10] use action build of v4 --- .github/workflows/debuntu_docker_images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index a3587358..1725881f 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push" - uses: jmorice91/test_env/.github/actions/build@adding_catalyst + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" From 4021a376b95403554a161c8c4c12c46e4f31c9f0 Mon Sep 17 00:00:00 2001 From: "jacques.morice" Date: Fri, 26 Jun 2026 14:50:06 +0200 Subject: [PATCH 03/10] add here document and reduce matrix --- .github/workflows/debuntu_docker_images.yml | 3 +- debuntu/all/Dockerfile | 67 +++++++++++---------- debuntu/mini/Dockerfile | 62 ++++++++++--------- 3 files changed, 73 insertions(+), 59 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 1725881f..d27c87c6 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -11,7 +11,8 @@ jobs: strategy: fail-fast: false matrix: - base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] + #base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] + base: ['ubuntu/rolling', 'debian/unstable'] mpi: ['openmpi', 'mpich'] variant: ['mini', 'all', 'pdi'] runs-on: ubuntu-latest diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index ba23725d..154a9057 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -124,38 +124,44 @@ WORKDIR ${HOME} FROM main AS builder_catalyst USER root -RUN set -ex \ -&& export DEBIAN_FRONTEND=noninteractive \ -&& apt-get update -y \ -&& apt-get upgrade -y \ -&& apt-get install -y --no-install-recommends \ - apt-transport-https \ - ca-certificates \ - git \ - ninja-build \ -&& rm -rf /var/lib/apt/lists/* - -# copy file for building and installing catalyst -COPY cmake_catalyst.sh ${HOME} -COPY build_catalyst.sh ${HOME} -COPY install_catalyst.sh ${HOME} - -RUN chmod +x /home/ci/cmake_catalyst.sh -RUN chmod +x /home/ci/build_catalyst.sh -RUN chmod +x /home/ci/install_catalyst.sh - -RUN chown ci /home/ci/cmake_catalyst.sh -RUN chown ci /home/ci/build_catalyst.sh - -RUN set -ex && bash /home/ci/cmake_catalyst.sh -USER ci -RUN set -ex && bash /home/ci/build_catalyst.sh +RUN < Date: Fri, 26 Jun 2026 16:06:08 +0200 Subject: [PATCH 04/10] Give Catalyst version in the workflow --- .github/workflows/debuntu_docker_images.yml | 5 ++-- debuntu/all/Dockerfile | 7 ++++-- debuntu/all/build_catalyst.sh | 27 --------------------- debuntu/all/cmake_catalyst.sh | 21 ---------------- debuntu/all/install_catalyst.sh | 12 --------- debuntu/mini/Dockerfile | 7 ++++-- debuntu/mini/build_catalyst.sh | 27 --------------------- debuntu/mini/cmake_catalyst.sh | 21 ---------------- debuntu/mini/install_catalyst.sh | 12 --------- 9 files changed, 13 insertions(+), 126 deletions(-) delete mode 100644 debuntu/all/build_catalyst.sh delete mode 100644 debuntu/all/cmake_catalyst.sh delete mode 100644 debuntu/all/install_catalyst.sh delete mode 100644 debuntu/mini/build_catalyst.sh delete mode 100644 debuntu/mini/cmake_catalyst.sh delete mode 100644 debuntu/mini/install_catalyst.sh diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index d27c87c6..e4f5a2fa 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -11,8 +11,7 @@ jobs: strategy: fail-fast: false matrix: - #base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] - base: ['ubuntu/rolling', 'debian/unstable'] + base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] mpi: ['openmpi', 'mpich'] variant: ['mini', 'all', 'pdi'] runs-on: ubuntu-latest @@ -41,5 +40,7 @@ jobs: MPI=${{ matrix.mpi }} DISTRO=${{ steps.info.outputs.distro }} DISTRO_VERSION=${{ steps.info.outputs.distro_version }} + CMAKE_MINIMAL_VERSION_FOR_CATALYST="3.26.0" + CATALYST_VERSION="2.0.0" tags: | ${{ steps.info.outputs.tags }} diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 154a9057..efa078e9 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -125,9 +125,12 @@ WORKDIR ${HOME} FROM main AS builder_catalyst USER root +ARG CATALYST_VERSION +ARG CMAKE_MINIMAL_VERSION_FOR_CATALYST + RUN <= $cmake_catalyst_required" -else - echo "compile cmake" - git clone https://gitlab.kitware.com/cmake/cmake.git local-cmake - cd local-cmake && git checkout v3.30.0 - echo "mkdir install" - mkdir install - echo "mkdir build" - mkdir build && cd build - set -x && ../bootstrap --prefix=../install -- -DCMAKE_USE_OPENSSL=OFF - make -j 8 - make install -fi diff --git a/debuntu/all/install_catalyst.sh b/debuntu/all/install_catalyst.sh deleted file mode 100644 index 0c6788a7..00000000 --- a/debuntu/all/install_catalyst.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -x -cmake_catalyst_required=3.26.0 -cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") - -mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) - -if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then - cmake --install ${HOME}/catalyst_clone/build -else - /home/ci/local-cmake/install/bin/cmake --install ${HOME}/catalyst_clone/build -fi diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 1e034536..e8f41622 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -76,9 +76,12 @@ WORKDIR ${HOME} FROM main AS builder_catalyst USER root +ARG CATALYST_VERSION +ARG CMAKE_MINIMAL_VERSION_FOR_CATALYST + RUN <= $cmake_catalyst_required" -else - echo "compile cmake" - git clone https://gitlab.kitware.com/cmake/cmake.git local-cmake - cd local-cmake && git checkout v3.30.0 - echo "mkdir install" - mkdir install - echo "mkdir build" - mkdir build && cd build - set -x && ../bootstrap --prefix=../install -- -DCMAKE_USE_OPENSSL=OFF - make -j 8 - make install -fi diff --git a/debuntu/mini/install_catalyst.sh b/debuntu/mini/install_catalyst.sh deleted file mode 100644 index 0c6788a7..00000000 --- a/debuntu/mini/install_catalyst.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -x -cmake_catalyst_required=3.26.0 -cmake_installed=$(cmake --version | head -1 | cut -f3 -d" ") - -mapfile -t sorted < <(printf "%s\n" "$cmake_installed" "$cmake_catalyst_required" | sort -V) - -if [[ ${sorted[0]} == "$cmake_catalyst_required" ]]; then - cmake --install ${HOME}/catalyst_clone/build -else - /home/ci/local-cmake/install/bin/cmake --install ${HOME}/catalyst_clone/build -fi From 99fb509c6bff20b687a8f12393990312cdf82639 Mon Sep 17 00:00:00 2001 From: "jacques.morice" Date: Mon, 29 Jun 2026 12:20:35 +0200 Subject: [PATCH 05/10] homogenity between mini and all --- debuntu/all/Dockerfile | 2 -- debuntu/mini/Dockerfile | 6 +----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index efa078e9..4ea9bcf1 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -185,6 +185,4 @@ ENV catalyst_dir="/opt/catalyst/lib/cmake/catalyst-2.0" RUN export VERBOSE=1 \ && bash pdi/bin/build_and_run_all_tests - - FROM main diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index e8f41622..fcf1c4e9 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -72,7 +72,6 @@ ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} -## chmod -R o+rX . FROM main AS builder_catalyst USER root @@ -117,15 +116,13 @@ else fi EORUN -USER ci - FROM alpine/git AS pdidl #RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi RUN git -C /root clone -b catalyst-plugin --recurse-submodules https://github.com/francois-kitware/pdi /root/pdi FROM main AS test - +USER ci COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi COPY --from=builder_catalyst --chown=ci:ci /opt/catalyst /opt/catalyst @@ -133,7 +130,6 @@ WORKDIR ${HOME} ## Add env varible for catalyst lib ENV LD_LIBRARY_PATH="/opt/catalyst/lib" ENV catalyst_dir="/opt/catalyst/lib/cmake/catalyst-2.0" -## add to check if catalyst_dir is needed RUN export VERBOSE=1 \ && bash pdi/bin/build_and_run_all_tests From 6e8fbb08306d054ad9914be21eba12e8a4d36db1 Mon Sep 17 00:00:00 2001 From: "jacques.morice" Date: Thu, 22 Oct 2026 13:54:10 +0200 Subject: [PATCH 06/10] mini image doesn't contain catalyst anymore --- debuntu/mini/Dockerfile | 59 +++++------------------------------------ 1 file changed, 7 insertions(+), 52 deletions(-) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index fcf1c4e9..1fe390c6 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -72,66 +72,21 @@ ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} -FROM main AS builder_catalyst -USER root - -ARG CATALYST_VERSION -ARG CMAKE_MINIMAL_VERSION_FOR_CATALYST - -RUN < Date: Thu, 22 Oct 2026 14:09:36 +0200 Subject: [PATCH 07/10] spack chooses the version of catalyst --- spack/3-baselibs/deps.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/3-baselibs/deps.sh b/spack/3-baselibs/deps.sh index 4efe8144..6882e89f 100644 --- a/spack/3-baselibs/deps.sh +++ b/spack/3-baselibs/deps.sh @@ -3,7 +3,7 @@ BASE_BUILDDEPS="cmake doxygen pkgconf py-setuptools" # libraries that are required in all cases BASE_LIBS="py-numpy py-pyyaml python" # libraries that depend on MPI & are required in all cases -BASE_MPILIBS="py-mpi4py veloc catalyst@2.0.0+mpi+python" +BASE_MPILIBS="py-mpi4py veloc catalyst+mpi+python" # libraries that are optional because embedded in PDI OPT_LIBS="paraconf py-pybind11 spdlog" # libraries that depend on MPI & are optional because embedded in PDI From 50ec2b0d1908cc051c1a5ba3a727c7dc5ae14810 Mon Sep 17 00:00:00 2001 From: "jacques.morice" Date: Thu, 22 Oct 2026 23:27:50 +0200 Subject: [PATCH 08/10] add cmake executable for jammy and spack env --- .github/workflows/debuntu_docker_images.yml | 4 +- debuntu/all/Dockerfile | 122 ++++++++++++-------- spack/3-baselibs/deps.sh | 2 +- 3 files changed, 74 insertions(+), 54 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index e4f5a2fa..de275936 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -40,7 +40,7 @@ jobs: MPI=${{ matrix.mpi }} DISTRO=${{ steps.info.outputs.distro }} DISTRO_VERSION=${{ steps.info.outputs.distro_version }} - CMAKE_MINIMAL_VERSION_FOR_CATALYST="3.26.0" - CATALYST_VERSION="2.0.0" + CMAKE_MINIMAL_VERSION_FOR_CATALYST=3.26.0 + CATALYST_VERSION=2.0 tags: | ${{ steps.info.outputs.tags }} diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 4ea9bcf1..7297180c 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -36,7 +36,7 @@ RUN set -ex \ && echo "deb [ arch=amd64 ] https://repo.pdi.dev/pdi-main.${DISTRO} ${VERSION_CODENAME} main" > /etc/apt/sources.list.d/pdi.list \ && curl --output /etc/apt/trusted.gpg.d/pdidev-archive-keyring.gpg https://repo.pdi.dev/pdi-main.${DISTRO}/pdidev-archive-keyring.gpg \ && apt-get update -y \ - && if [[ "${MPI}" = openmpi ]]; then MPI4PY=python3-mpi4py; FLOWVR=flowvr; fi \ + && if [[ "${MPI}" = openmpi ]]; then MPI4PY=python3-mpi4py; FLOWVR=flowvr; fi\ && apt-get install -y --no-install-recommends \ build-essential \ cmake \ @@ -97,12 +97,75 @@ RUN mkdir -p /opt/veloc \ && ./auto-install.py /opt/veloc -# stage : pre_main image with VeloC +# stage : catalyst builder +FROM pre_main AS builder_catalyst + +ARG CATALYST_VERSION +ARG CMAKE_MINIMAL_VERSION_FOR_CATALYST + +RUN mkdir -p /opt +ENV HOME=/opt +WORKDIR ${HOME} + +RUN set -ex \ +&& export DEBIAN_FRONTEND=noninteractive \ +&& apt-get update -y \ +&& apt-get upgrade -y \ +&& apt-get install -y --no-install-recommends \ + apt-transport-https \ + ca-certificates \ + git \ + ninja-build \ + curl \ +&& rm -rf /var/lib/apt/lists/* + +RUN < /etc/ld.so.conf.d/image_catalyst.conf \ +&& ldconfig + COPY --from=velocdl /opt/veloc /opt/veloc ENV veloc_ROOT=/opt/veloc @@ -118,53 +181,12 @@ ENV PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe # force parallel HDF5 as first try (see #43) ENV HDF5_DIR=/usr/lib/x86_64-linux-gnu/cmake/hdf5_${MPI} +# create user ci ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} -FROM main AS builder_catalyst -USER root -ARG CATALYST_VERSION -ARG CMAKE_MINIMAL_VERSION_FOR_CATALYST - -RUN < Date: Tue, 27 Oct 2026 15:48:30 +0100 Subject: [PATCH 09/10] remove variant python for catalyst --- spack/3-baselibs/deps.sh | 1 + spack/4-mini/Dockerfile | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/spack/3-baselibs/deps.sh b/spack/3-baselibs/deps.sh index 6aae1774..85ad96d6 100644 --- a/spack/3-baselibs/deps.sh +++ b/spack/3-baselibs/deps.sh @@ -4,6 +4,7 @@ BASE_BUILDDEPS="cmake doxygen pkgconf py-setuptools" BASE_LIBS="py-numpy py-pyyaml python" # libraries that depend on MPI & are required in all cases BASE_MPILIBS="py-mpi4py veloc libcatalyst+mpi+python" +BASE_MPILIBS_OLDSPACK="py-mpi4py veloc libcatalyst+mpi" # libraries that are optional because embedded in PDI OPT_LIBS="paraconf py-pybind11 spdlog" # libraries that depend on MPI & are optional because embedded in PDI diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index 911dcbfa..47c80f5c 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -13,6 +13,16 @@ ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Add our MPI of choice and base MPI-dependant libs to the environment and install it RUN spack -e pdienv add -l mpi "${MPI}" -RUN . deps.sh && spack -e pdienv add -l mpilibs ${BASE_MPILIBS} +RUN < Date: Tue, 3 Nov 2026 23:05:35 +0100 Subject: [PATCH 10/10] adding review comment --- debuntu/all/Dockerfile | 20 +++++++++++++------- spack/3-baselibs/deps.sh | 1 + spack/4-mini/Dockerfile | 4 ++-- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 7297180c..24020c71 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -121,12 +121,16 @@ RUN set -ex \ RUN < /etc/ld.so.conf.d/image_catalyst.conf \ && ldconfig @@ -181,7 +188,6 @@ ENV PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe # force parallel HDF5 as first try (see #43) ENV HDF5_DIR=/usr/lib/x86_64-linux-gnu/cmake/hdf5_${MPI} -# create user ci ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} diff --git a/spack/3-baselibs/deps.sh b/spack/3-baselibs/deps.sh index 85ad96d6..3d4659cc 100644 --- a/spack/3-baselibs/deps.sh +++ b/spack/3-baselibs/deps.sh @@ -4,6 +4,7 @@ BASE_BUILDDEPS="cmake doxygen pkgconf py-setuptools" BASE_LIBS="py-numpy py-pyyaml python" # libraries that depend on MPI & are required in all cases BASE_MPILIBS="py-mpi4py veloc libcatalyst+mpi+python" +#TODO: libcatalyst+python was introduced in spack 0.22, switch back to a single list when our minimum requirement goes at or above that BASE_MPILIBS_OLDSPACK="py-mpi4py veloc libcatalyst+mpi" # libraries that are optional because embedded in PDI OPT_LIBS="paraconf py-pybind11 spdlog" diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index 47c80f5c..422e0d64 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -14,13 +14,13 @@ ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Add our MPI of choice and base MPI-dependant libs to the environment and install it RUN spack -e pdienv add -l mpi "${MPI}" RUN <