From c8b1812d8ce21bb1deea4b91b511518be0d04d6d Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 23 Apr 2026 10:57:15 +0200 Subject: [PATCH 01/65] added veloc to deps.sh --- 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 e92ef5d..09e95a4 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" +BASE_MPILIBS="py-mpi4py veloc" # 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 b7a5461a323b642ab44d61d817b063865a01f1b9 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 23 Apr 2026 11:35:06 +0200 Subject: [PATCH 02/65] changing tags to push images to forked repo --- .github/actions/build/action.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 8fd2a20..8269368 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -48,8 +48,8 @@ runs: run: | set -e if [ 'true' = '${{ contains(inputs.image-name,':') }}' ] - then CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" - else CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + then CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + else CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi echo "sha=${GITHUB_SHA:0:7}" >> "${GITHUB_OUTPUT}" if [ 'x${{ inputs.cache-to }}' = 'x' ] @@ -122,7 +122,7 @@ runs: ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} tags: | - ghcr.io/pdidev/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} + ghcr.io/${{ github.repository_owner }}/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} ${{ inputs.tags }} context: "${{ inputs.context }}${{ inputs.path }}" push: ${{ inputs.push }} From 79e5bf824af6e33e517af21218a8611a498efd58 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 23 Apr 2026 11:51:08 +0200 Subject: [PATCH 03/65] changed action to use in spack_docker_images workflow to point at my updated action, not pdidev/.. action --- .github/workflows/spack_docker_images.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index a5683ce..85d036c 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 1- base" - uses: pdidev/test_env/.github/actions/build@v4 + uses: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -29,7 +29,7 @@ jobs: image-name: base cache: ${{ github.event_name != 'schedule' && ( github.event_name != 'workflow_dispatch' || inputs.cache ) }} # cache for every run but scheduled ones - name: "Build and push 2- spackbase" - uses: pdidev/test_env/.github/actions/build@v4 + uses: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -47,7 +47,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 3- baselibs" - uses: pdidev/test_env/.github/actions/build@v4 + uses: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -69,7 +69,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 4- mini" - uses: pdidev/test_env/.github/actions/build@v4 + uses: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -80,7 +80,7 @@ jobs: COMPILER=${{ matrix.compiler }} MPI=${{ matrix.mpi }} - name: "Build and push 5- all" - uses: pdidev/test_env/.github/actions/build@v4 + uses: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -101,7 +101,7 @@ jobs: needs: step_4_mini_5_all runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: ./.github/actions/build with: { submodules: 'recursive' } - name: "Compute tags" id: info @@ -112,7 +112,7 @@ jobs: echo "fullspack=ghcr.io/pdidev/fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi - name: "Build and push" - uses: pdidev/test_env/.github/actions/build@v4 + uses: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -127,7 +127,7 @@ jobs: tags: | ${{ steps.info.outputs.tags }} - name: "Build and push fullspack" - uses: pdidev/test_env/.github/actions/build@v4 + uses: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" From f701a6ea3de110561e4c7820ea8a81ca07163b29 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 23 Apr 2026 13:42:29 +0200 Subject: [PATCH 04/65] changed pdi_test references I had forgotten --- .github/workflows/spack_docker_images.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 85d036c..7981837 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -101,15 +101,15 @@ jobs: needs: step_4_mini_5_all runs-on: ubuntu-latest steps: - - uses: ./.github/actions/build + - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Compute tags" id: info run: | if [ 'true' = "${{ github.event_name == 'push' || github.event_name == 'schedule' }}" ] then - echo "tags=ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" - echo "fullspack=ghcr.io/pdidev/fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + echo "tags=ghcr.io/${{ github.repository_owner }}/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + echo "fullspack=ghcr.io/${{ github.repository_owner }}/fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi - name: "Build and push" uses: ./.github/actions/build From 7098954385256200fb9a061b6d0824fd2b02ed89 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 23 Apr 2026 13:59:02 +0200 Subject: [PATCH 05/65] Added the name of the registry as a build argument --- .github/actions/build/action.yml | 2 ++ spack/2-spackbase/Dockerfile | 3 ++- spack/3-baselibs/Dockerfile | 3 ++- spack/4-mini/Dockerfile | 3 ++- spack/5-all/Dockerfile | 3 ++- spack/6-finalize/Dockerfile | 3 ++- 6 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 8269368..920ba16 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -107,6 +107,7 @@ runs: build-args: | ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} + REGISTRY=ghcr.io/${{ github.repository_owner }}/test_env context: "${{ inputs.context }}${{ inputs.path }}" push: false target: test @@ -121,6 +122,7 @@ runs: build-args: | ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} + REGISTRY=ghcr.io/${{ github.repository_owner }}/test_env tags: | ghcr.io/${{ github.repository_owner }}/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} ${{ inputs.tags }} diff --git a/spack/2-spackbase/Dockerfile b/spack/2-spackbase/Dockerfile index 14138cb..f7060f5 100644 --- a/spack/2-spackbase/Dockerfile +++ b/spack/2-spackbase/Dockerfile @@ -1,6 +1,7 @@ ARG IMAGE_TAG +ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/base:${IMAGE_TAG} +FROM ${REGISTRY}/base:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 11af49c..447384e 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -1,8 +1,9 @@ ARG VERSION ARG COMPILER ARG IMAGE_TAG +ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/spackbase:${IMAGE_TAG} +FROM ${REGISTRY}/spackbase:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index 911dcbf..111f4ef 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -2,8 +2,9 @@ ARG VERSION ARG COMPILER ARG MPI ARG IMAGE_TAG +ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/builder:${VERSION}-${COMPILER}-baselibs-${IMAGE_TAG} +FROM ${REGISTRY}/builder:${VERSION}-${COMPILER}-baselibs-${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" diff --git a/spack/5-all/Dockerfile b/spack/5-all/Dockerfile index 345ebf3..f520764 100644 --- a/spack/5-all/Dockerfile +++ b/spack/5-all/Dockerfile @@ -2,8 +2,9 @@ ARG VERSION ARG COMPILER ARG MPI ARG IMAGE_TAG +ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/builder:${VERSION}-${COMPILER}-${MPI}-mini-${IMAGE_TAG} +FROM ${REGISTRY}/builder:${VERSION}-${COMPILER}-${MPI}-mini-${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" diff --git a/spack/6-finalize/Dockerfile b/spack/6-finalize/Dockerfile index b1d9585..99c0d6c 100644 --- a/spack/6-finalize/Dockerfile +++ b/spack/6-finalize/Dockerfile @@ -3,8 +3,9 @@ ARG COMPILER ARG MPI ARG LIBS ARG IMAGE_TAG +ARG REGISTRY=ghcr.io/pdidev/test_env -FROM ghcr.io/pdidev/test_env/builder:${VERSION}-${COMPILER}-${MPI}-${LIBS}-${IMAGE_TAG} AS builder +FROM ${REGISTRY}/builder:${VERSION}-${COMPILER}-${MPI}-${LIBS}-${IMAGE_TAG} AS builder LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" From 25024fd2a11a9673cfb8f2ba385ddb8a1033d29f Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Mon, 4 May 2026 10:11:32 +0200 Subject: [PATCH 06/65] Update debuntu images to include VeloC and its dependencies --- debuntu/all/Dockerfile | 106 +++++++++++++++++++++++++++++++++++++++- debuntu/mini/Dockerfile | 103 +++++++++++++++++++++++++++++++++++++- 2 files changed, 205 insertions(+), 4 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 9590a33..be0a3cc 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -33,6 +33,8 @@ RUN set -ex \ apt-transport-https \ ca-certificates \ curl \ + libboost-dev \ + libssl-dev \ && 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 \ @@ -70,6 +72,104 @@ RUN set -ex \ && rm -rf /root/* \ && [ -f ~/.profile ] && ( sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile || true ) + + +# stage : veloc download + +FROM main AS velocdl + +RUN set -ex \ + && apt-get update -y \ + && apt-get install -y --no-install-recommends \ + git \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rf /var/lib/apt/lists/* + + +RUN set -ex \ + && git clone --depth 1 -b v1.4.0 https://github.com/ECP-VeloC/KVTree.git /tmp/kvtree \ + && cmake -S /tmp/kvtree -B /tmp/kvtree/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/kvtree/build --parallel \ + && cmake --install /tmp/kvtree/build \ + && rm -rf /tmp/kvtree + + +RUN set -ex \ + && git clone --depth 1 -b v0.8.0 https://github.com/ECP-VeloC/AXL.git /tmp/axl \ + && cmake -S /tmp/axl -B /tmp/axl/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/axl/build --parallel \ + && cmake --install /tmp/axl/build \ + && rm -rf /tmp/axl + + +RUN set -ex \ + && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/rankstr.git /tmp/rankstr \ + && cmake -S /tmp/rankstr -B /tmp/rankstr/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/rankstr/build --parallel \ + && cmake --install /tmp/rankstr/build \ + && rm -rf /tmp/rankstr + + +RUN set -ex \ + && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/redset.git /tmp/redset \ + && cmake -S /tmp/redset -B /tmp/redset/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/redset/build --parallel \ + && cmake --install /tmp/redset/build \ + && rm -rf /tmp/redset + + +RUN set -ex \ + && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/shuffile.git /tmp/shuffile \ + && cmake -S /tmp/shuffile -B /tmp/shuffile/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/shuffile/build --parallel \ + && cmake --install /tmp/shuffile/build \ + && rm -rf /tmp/shuffile + + +RUN set -ex \ + && git clone --depth 1 -b v0.4.0 https://github.com/ECP-VeloC/er.git /tmp/er \ + && cmake -S /tmp/er -B /tmp/er/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/er/build --parallel \ + && cmake --install /tmp/er/build \ + && rm -rf /tmp/er + + +RUN set -ex \ + && git clone --depth 1 -b main https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ + && cmake -S /tmp/veloc -B /tmp/veloc/build \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DCOMM_QUEUE=socket_queue \ + -DENABLE_TESTS=OFF \ + -DCMAKE_CXX_FLAGS="-DOMPI_SKIP_MPICXX=1" \ + && cmake --build /tmp/veloc/build --parallel \ + && cmake --install /tmp/veloc/build \ + && rm -rf /tmp/veloc + + + +# stage : complete image + +FROM main AS complete-main +ARG DISTRO +ARG DISTRO_VERSION +ARG MPI +COPY --from=velocdl /usr/local /usr/local +RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig + + ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} @@ -83,14 +183,16 @@ USER ci:ci WORKDIR ${HOME} +# stage : pdi download FROM alpine/git AS pdidl RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi +# stage : test -FROM main AS test +FROM complete-main AS test COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi @@ -99,4 +201,4 @@ RUN export VERBOSE=1 \ -FROM main +FROM complete-main diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 584aaa2..b795fe1 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -34,6 +34,8 @@ RUN set -ex \ build-essential \ cmake \ doxygen \ + libboost-dev \ + libssl-dev \ gfortran \ libcurl4-openssl-dev \ lib${MPI}-dev \ @@ -60,6 +62,101 @@ RUN set -ex \ && rm -rf /root/* \ && [ -f ~/.profile ] && ( sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile || true ) +# stage : veloc download + +FROM main AS velocdl + +RUN set -ex \ + && apt-get update -y \ + && apt-get install -y --no-install-recommends \ + git \ + && apt-get clean -y \ + && apt-get autoclean -y \ + && rm -rf /var/lib/apt/lists/* + + +RUN set -ex \ + && git clone --depth 1 -b v1.4.0 https://github.com/ECP-VeloC/KVTree.git /tmp/kvtree \ + && cmake -S /tmp/kvtree -B /tmp/kvtree/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/kvtree/build --parallel \ + && cmake --install /tmp/kvtree/build \ + && rm -rf /tmp/kvtree + + +RUN set -ex \ + && git clone --depth 1 -b v0.8.0 https://github.com/ECP-VeloC/AXL.git /tmp/axl \ + && cmake -S /tmp/axl -B /tmp/axl/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/axl/build --parallel \ + && cmake --install /tmp/axl/build \ + && rm -rf /tmp/axl + + +RUN set -ex \ + && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/rankstr.git /tmp/rankstr \ + && cmake -S /tmp/rankstr -B /tmp/rankstr/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/rankstr/build --parallel \ + && cmake --install /tmp/rankstr/build \ + && rm -rf /tmp/rankstr + + +RUN set -ex \ + && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/redset.git /tmp/redset \ + && cmake -S /tmp/redset -B /tmp/redset/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/redset/build --parallel \ + && cmake --install /tmp/redset/build \ + && rm -rf /tmp/redset + + +RUN set -ex \ + && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/shuffile.git /tmp/shuffile \ + && cmake -S /tmp/shuffile -B /tmp/shuffile/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/shuffile/build --parallel \ + && cmake --install /tmp/shuffile/build \ + && rm -rf /tmp/shuffile + + +RUN set -ex \ + && git clone --depth 1 -b v0.4.0 https://github.com/ECP-VeloC/er.git /tmp/er \ + && cmake -S /tmp/er -B /tmp/er/build \ + -DENABLE_TESTS=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + && cmake --build /tmp/er/build --parallel \ + && cmake --install /tmp/er/build \ + && rm -rf /tmp/er + + +RUN set -ex \ + && git clone --depth 1 -b main https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ + && cmake -S /tmp/veloc -B /tmp/veloc/build \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DCOMM_QUEUE=socket_queue \ + -DENABLE_TESTS=OFF \ + -DCMAKE_CXX_FLAGS="-DOMPI_SKIP_MPICXX=1" \ + && cmake --build /tmp/veloc/build --parallel \ + && cmake --install /tmp/veloc/build \ + && rm -rf /tmp/veloc + + + +# stage : complete image + +FROM main AS complete-main +ARG DISTRO +ARG DISTRO_VERSION +ARG MPI +COPY --from=velocdl /usr/local /usr/local +RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig + ENV PDI_SYSTEM=${DISTRO} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} @@ -72,14 +169,16 @@ USER ci:ci WORKDIR ${HOME} +# stage : pdi download FROM alpine/git AS pdidl RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi +# stage : test -FROM main AS test +FROM complete-main AS test COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi @@ -88,4 +187,4 @@ RUN export VERBOSE=1 \ -FROM main +FROM complete-main From 272a6c60022e44555af35594194a9777eb170dd3 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 6 May 2026 10:33:33 +0200 Subject: [PATCH 07/65] changed placement of git and linnoost, libssl --- debuntu/all/Dockerfile | 21 ++++++--------------- debuntu/mini/Dockerfile | 4 ++-- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index be0a3cc..191bf13 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -30,11 +30,10 @@ RUN set -ex \ && apt-get update -y \ && apt-get upgrade -y \ && apt-get install -y --no-install-recommends \ + git \ apt-transport-https \ ca-certificates \ curl \ - libboost-dev \ - libssl-dev \ && 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 \ @@ -42,6 +41,8 @@ RUN set -ex \ && apt-get install -y --no-install-recommends \ build-essential \ cmake \ + libboost-dev \ + libssl-dev \ doxygen \ gfortran \ libhdf5-${MPI}-dev \ @@ -73,20 +74,10 @@ RUN set -ex \ && [ -f ~/.profile ] && ( sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile || true ) - # stage : veloc download FROM main AS velocdl -RUN set -ex \ - && apt-get update -y \ - && apt-get install -y --no-install-recommends \ - git \ - && apt-get clean -y \ - && apt-get autoclean -y \ - && rm -rf /var/lib/apt/lists/* - - RUN set -ex \ && git clone --depth 1 -b v1.4.0 https://github.com/ECP-VeloC/KVTree.git /tmp/kvtree \ && cmake -S /tmp/kvtree -B /tmp/kvtree/build \ @@ -148,10 +139,10 @@ RUN set -ex \ RUN set -ex \ - && git clone --depth 1 -b main https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ + && git clone --depth 1 -b 'veloc-1.8' https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ && cmake -S /tmp/veloc -B /tmp/veloc/build \ -DCMAKE_INSTALL_PREFIX=/usr/local \ - -DCOMM_QUEUE=socket_queue \ + -DCOMM_QUEUE=ipc_queue \ -DENABLE_TESTS=OFF \ -DCMAKE_CXX_FLAGS="-DOMPI_SKIP_MPICXX=1" \ && cmake --build /tmp/veloc/build --parallel \ @@ -187,7 +178,7 @@ WORKDIR ${HOME} 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 --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi # stage : test diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index b795fe1..269133a 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -136,7 +136,7 @@ RUN set -ex \ RUN set -ex \ - && git clone --depth 1 -b main https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ + && git clone --depth 1 -b 'veloc-1.8' https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ && cmake -S /tmp/veloc -B /tmp/veloc/build \ -DCMAKE_INSTALL_PREFIX=/usr/local \ -DCOMM_QUEUE=socket_queue \ @@ -173,7 +173,7 @@ WORKDIR ${HOME} 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 --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi # stage : test From 07d9885fc0057308c4fe1445fa401a6376ac8882 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 6 May 2026 15:36:49 +0200 Subject: [PATCH 08/65] changes to workflow to push to my forks' packages --- .github/workflows/debuntu_docker_images.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 1725881..40d1e94 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -21,7 +21,7 @@ jobs: run: | if [ 'true' = "${{ github.event_name == 'push' || github.event_name == 'schedule' }}" ] then - echo "tags=ghcr.io/pdidev/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" + echo "tags=ghcr.io/${{ github.repository_owner }}/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" fi BASE="${{ matrix.base }}" echo "distro=${BASE%/*}" >> "${GITHUB_OUTPUT}" @@ -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: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" From 2f2b9786b7e239168a36e4d32f497690c9019721 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 7 May 2026 11:58:31 +0200 Subject: [PATCH 09/65] fix spdlog-doxygen incompatibility in ubuntu/rolling mini --- debuntu/mini/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 269133a..5645cc6 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -34,6 +34,7 @@ RUN set -ex \ build-essential \ cmake \ doxygen \ + libspdlog-dev \ libboost-dev \ libssl-dev \ gfortran \ From a09ca7b5f39fbac19e42e029e27c83fc8c212eb5 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 7 May 2026 13:22:33 +0200 Subject: [PATCH 10/65] try build doxygen from prebuilt github binary releases to fix compatibility issue between doxygen and spdlog --- debuntu/mini/Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 5645cc6..e2c9a70 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -33,8 +33,6 @@ RUN set -ex \ && apt-get install -y --no-install-recommends \ build-essential \ cmake \ - doxygen \ - libspdlog-dev \ libboost-dev \ libssl-dev \ gfortran \ @@ -63,6 +61,13 @@ RUN set -ex \ && rm -rf /root/* \ && [ -f ~/.profile ] && ( sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile || true ) +RUN set -ex \ + && wget -qO /tmp/doxygen.tar.gz \ + https://github.com/doxygen/doxygen/releases/download/Release_1_9_8/doxygen-1.9.8.linux.bin.tar.gz \ + && tar -xzf /tmp/doxygen.tar.gz -C /usr/local --strip-components=1 \ + && rm /tmp/doxygen.tar.gz + + # stage : veloc download FROM main AS velocdl From 29f78cbb83c0106ae5cb5495f04500e85d74c0e6 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 7 May 2026 14:02:01 +0200 Subject: [PATCH 11/65] try install doxygen with curl instead --- debuntu/mini/Dockerfile | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index e2c9a70..5f6a9ce 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -33,6 +33,8 @@ RUN set -ex \ && apt-get install -y --no-install-recommends \ build-essential \ cmake \ + curl \ + libspdlog-dev \ libboost-dev \ libssl-dev \ gfortran \ @@ -51,6 +53,10 @@ RUN set -ex \ python3-yaml \ ssh-client \ zlib1g-dev \ + && curl -Lo /tmp/doxygen.tar.gz \ + https://github.com/doxygen/doxygen/releases/download/Release_1_9_8/doxygen-1.9.8.linux.bin.tar.gz \ + && tar -xzf /tmp/doxygen.tar.gz -C /usr/local --strip-components=1 \ + && rm /tmp/doxygen.tar.gz \ && apt-get purge -y curl \ && apt-get autoremove -y \ && apt-get clean -y \ @@ -61,13 +67,6 @@ RUN set -ex \ && rm -rf /root/* \ && [ -f ~/.profile ] && ( sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile || true ) -RUN set -ex \ - && wget -qO /tmp/doxygen.tar.gz \ - https://github.com/doxygen/doxygen/releases/download/Release_1_9_8/doxygen-1.9.8.linux.bin.tar.gz \ - && tar -xzf /tmp/doxygen.tar.gz -C /usr/local --strip-components=1 \ - && rm /tmp/doxygen.tar.gz - - # stage : veloc download FROM main AS velocdl From 92d1ef739bead95f24e51c5c7ed32b7988a4a7eb Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 22 May 2026 16:00:58 +0200 Subject: [PATCH 12/65] exclude building on debian/unstable due to mpich issue #7814 --- .github/workflows/debuntu_docker_images.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 40d1e94..be02b16 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -14,6 +14,10 @@ jobs: base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] mpi: ['openmpi', 'mpich'] variant: ['mini', 'all', 'pdi'] + # exclude debian/unstable + mpich due to mpich issue #7814 + exclude: + - { base: 'debian/unstable', mpi: mpich, variant : all} + - { base: 'debian/unstable', mpi: mpich, variant : mini} runs-on: ubuntu-latest steps: - name: Compute tags, distro & version From 95bb78f041c787bb377dd18831575da3a1adf8af Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 27 May 2026 12:46:43 +0200 Subject: [PATCH 13/65] build mpich with shared memory support --- .github/workflows/debuntu_docker_images.yml | 4 --- debuntu/all/Dockerfile | 27 +++++++++++++++++++ debuntu/mini/Dockerfile | 30 +++++++++++++++++++++ 3 files changed, 57 insertions(+), 4 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index be02b16..40d1e94 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -14,10 +14,6 @@ jobs: base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] mpi: ['openmpi', 'mpich'] variant: ['mini', 'all', 'pdi'] - # exclude debian/unstable + mpich due to mpich issue #7814 - exclude: - - { base: 'debian/unstable', mpi: mpich, variant : all} - - { base: 'debian/unstable', mpi: mpich, variant : mini} runs-on: ubuntu-latest steps: - name: Compute tags, distro & version diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 191bf13..2ecf754 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -149,7 +149,33 @@ RUN set -ex \ && cmake --install /tmp/veloc/build \ && rm -rf /tmp/veloc +# stage : mpich download (with options for shared memory support) +FROM main AS mpichdl +ARG MPI +RUN set -ex \ + && apt-get update -y \ + && apt-get install -y --no-install-recommends \ + dpkg-dev \ + && echo "deb-src http://deb.debian.org/debian unstable main" >> /etc/apt/sources.list \ + && apt-get update -y \ + && apt-get source mpich \ + && cd mpich-* \ + && ./configure \ + --prefix=/usr/local \ + --with-ch4-shmmods=posix \ + --with-device=ch4:ucx \ + --enable-shared \ + --disable-static \ + FC=gfortran \ + && make -j$(nproc) \ + && make install \ + && ldconfig + + +FROM scratch AS mpi_is_openmpi +FROM mpichdl AS mpi_is_mpich +FROM mpi_is_${MPI} AS conditional_mpich # stage : complete image @@ -158,6 +184,7 @@ ARG DISTRO ARG DISTRO_VERSION ARG MPI COPY --from=velocdl /usr/local /usr/local +COPY --from=conditional_mpich /usr/local /usr/local RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 5f6a9ce..65c9d74 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -1,5 +1,6 @@ ARG DISTRO ARG DISTRO_VERSION +ARG MPI FROM ${DISTRO}:${DISTRO_VERSION} AS main @@ -153,6 +154,34 @@ RUN set -ex \ +# stage : mpich download (with options for shared memory support) +FROM main AS mpichdl +ARG MPI + +RUN set -ex \ + && apt-get update -y \ + && apt-get install -y --no-install-recommends \ + dpkg-dev \ + && echo "deb-src http://deb.debian.org/debian unstable main" >> /etc/apt/sources.list \ + && apt-get update -y \ + && apt-get source mpich \ + && cd mpich-* \ + && ./configure \ + --prefix=/usr/local \ + --with-ch4-shmmods=posix \ + --with-device=ch4:ucx \ + --enable-shared \ + --disable-static \ + FC=gfortran \ + && make -j$(nproc) \ + && make install \ + && ldconfig + + +FROM scratch AS mpi_is_openmpi +FROM mpichdl AS mpi_is_mpich +FROM mpi_is_${MPI} AS conditional_mpich + # stage : complete image FROM main AS complete-main @@ -160,6 +189,7 @@ ARG DISTRO ARG DISTRO_VERSION ARG MPI COPY --from=velocdl /usr/local /usr/local +COPY --from=conditional_mpich /usr/local /usr/local RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig ENV PDI_SYSTEM=${DISTRO} From 87b1ae5d6359777fbb2fba6e7ca4a5e6ddf64c9f Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 27 May 2026 13:06:46 +0200 Subject: [PATCH 14/65] change to copy the mpich install only when MPI = mpich --- debuntu/all/Dockerfile | 13 +++++++------ debuntu/mini/Dockerfile | 15 +++++++-------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 2ecf754..8a3acb0 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -151,7 +151,6 @@ RUN set -ex \ # stage : mpich download (with options for shared memory support) FROM main AS mpichdl -ARG MPI RUN set -ex \ && apt-get update -y \ @@ -173,10 +172,6 @@ RUN set -ex \ && ldconfig -FROM scratch AS mpi_is_openmpi -FROM mpichdl AS mpi_is_mpich -FROM mpi_is_${MPI} AS conditional_mpich - # stage : complete image FROM main AS complete-main @@ -184,7 +179,13 @@ ARG DISTRO ARG DISTRO_VERSION ARG MPI COPY --from=velocdl /usr/local /usr/local -COPY --from=conditional_mpich /usr/local /usr/local +COPY --from=mpichdl /usr/local /usr/local_mpich +RUN if [ "${MPI}" = "mpich" ]; then \ + cp -a /usr/local_mpich/. /usr/local/ \ + && rm -rf /usr/local_mpich; \ + else \ + rm -rf /usr/local_mpich; \ + fi RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 65c9d74..5ecc0e6 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -1,6 +1,5 @@ ARG DISTRO ARG DISTRO_VERSION -ARG MPI FROM ${DISTRO}:${DISTRO_VERSION} AS main @@ -156,7 +155,6 @@ RUN set -ex \ # stage : mpich download (with options for shared memory support) FROM main AS mpichdl -ARG MPI RUN set -ex \ && apt-get update -y \ @@ -177,11 +175,6 @@ RUN set -ex \ && make install \ && ldconfig - -FROM scratch AS mpi_is_openmpi -FROM mpichdl AS mpi_is_mpich -FROM mpi_is_${MPI} AS conditional_mpich - # stage : complete image FROM main AS complete-main @@ -189,7 +182,13 @@ ARG DISTRO ARG DISTRO_VERSION ARG MPI COPY --from=velocdl /usr/local /usr/local -COPY --from=conditional_mpich /usr/local /usr/local +COPY --from=mpichdl /usr/local /usr/local_mpich +RUN if [ "${MPI}" = "mpich" ]; then \ + cp -a /usr/local_mpich/. /usr/local/ \ + && rm -rf /usr/local_mpich; \ + else \ + rm -rf /usr/local_mpich; \ + fi RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig ENV PDI_SYSTEM=${DISTRO} From 9dd713703b03813341fe62626f221c4c410a8506 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 27 May 2026 13:20:08 +0200 Subject: [PATCH 15/65] install mpich from source only for debian/unstable and mpich images --- debuntu/all/Dockerfile | 42 ++++++++++++++++++++++------------------- debuntu/mini/Dockerfile | 41 ++++++++++++++++++++++------------------ 2 files changed, 46 insertions(+), 37 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 8a3acb0..9846310 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -151,26 +151,30 @@ RUN set -ex \ # stage : mpich download (with options for shared memory support) FROM main AS mpichdl +ARG MPI +ARG DISTRO +ARG DISTRO_VERSION RUN set -ex \ - && apt-get update -y \ - && apt-get install -y --no-install-recommends \ - dpkg-dev \ - && echo "deb-src http://deb.debian.org/debian unstable main" >> /etc/apt/sources.list \ - && apt-get update -y \ - && apt-get source mpich \ - && cd mpich-* \ - && ./configure \ - --prefix=/usr/local \ - --with-ch4-shmmods=posix \ - --with-device=ch4:ucx \ - --enable-shared \ - --disable-static \ - FC=gfortran \ - && make -j$(nproc) \ - && make install \ - && ldconfig - + && if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ + apt-get update -y \ + && apt-get install -y --no-install-recommends dpkg-dev \ + && echo "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main" \ + > /etc/apt/sources.list.d/debian-src.sources + && apt-get update -y \ + && apt-get source mpich \ + && cd mpich-* \ + && ./configure \ + --prefix=/usr/local \ + --with-ch4-shmmods=posix \ + --with-device=ch4:ucx \ + --enable-shared \ + --disable-static \ + FC=gfortran \ + && make -j$(nproc) \ + && make install \ + && ldconfig; \ + fi # stage : complete image @@ -180,7 +184,7 @@ ARG DISTRO_VERSION ARG MPI COPY --from=velocdl /usr/local /usr/local COPY --from=mpichdl /usr/local /usr/local_mpich -RUN if [ "${MPI}" = "mpich" ]; then \ +RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ cp -a /usr/local_mpich/. /usr/local/ \ && rm -rf /usr/local_mpich; \ else \ diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 5ecc0e6..fd37add 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -155,25 +155,30 @@ RUN set -ex \ # stage : mpich download (with options for shared memory support) FROM main AS mpichdl +ARG MPI +ARG DISTRO +ARG DISTRO_VERSION RUN set -ex \ - && apt-get update -y \ - && apt-get install -y --no-install-recommends \ - dpkg-dev \ - && echo "deb-src http://deb.debian.org/debian unstable main" >> /etc/apt/sources.list \ - && apt-get update -y \ - && apt-get source mpich \ - && cd mpich-* \ - && ./configure \ - --prefix=/usr/local \ - --with-ch4-shmmods=posix \ - --with-device=ch4:ucx \ - --enable-shared \ - --disable-static \ - FC=gfortran \ - && make -j$(nproc) \ - && make install \ - && ldconfig + && if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ + apt-get update -y \ + && apt-get install -y --no-install-recommends dpkg-dev \ + && echo "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main" \ + > /etc/apt/sources.list.d/debian-src.sources + && apt-get update -y \ + && apt-get source mpich \ + && cd mpich-* \ + && ./configure \ + --prefix=/usr/local \ + --with-ch4-shmmods=posix \ + --with-device=ch4:ucx \ + --enable-shared \ + --disable-static \ + FC=gfortran \ + && make -j$(nproc) \ + && make install \ + && ldconfig; \ + fi # stage : complete image @@ -183,7 +188,7 @@ ARG DISTRO_VERSION ARG MPI COPY --from=velocdl /usr/local /usr/local COPY --from=mpichdl /usr/local /usr/local_mpich -RUN if [ "${MPI}" = "mpich" ]; then \ +RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ cp -a /usr/local_mpich/. /usr/local/ \ && rm -rf /usr/local_mpich; \ else \ From 09bdb9c2d1a0ae7bc02c0c1d65410b22ce90ad34 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 27 May 2026 15:10:27 +0200 Subject: [PATCH 16/65] fixed missing line continuation --- debuntu/all/Dockerfile | 2 +- debuntu/mini/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 9846310..9b01b79 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -160,7 +160,7 @@ RUN set -ex \ apt-get update -y \ && apt-get install -y --no-install-recommends dpkg-dev \ && echo "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main" \ - > /etc/apt/sources.list.d/debian-src.sources + > /etc/apt/sources.list.d/debian-src.sources \ && apt-get update -y \ && apt-get source mpich \ && cd mpich-* \ diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index fd37add..b910a96 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -164,7 +164,7 @@ RUN set -ex \ apt-get update -y \ && apt-get install -y --no-install-recommends dpkg-dev \ && echo "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main" \ - > /etc/apt/sources.list.d/debian-src.sources + > /etc/apt/sources.list.d/debian-src.sources \ && apt-get update -y \ && apt-get source mpich \ && cd mpich-* \ From eb099ae1f57d16650fb7f123f3c01b0603a51817 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 27 May 2026 15:19:47 +0200 Subject: [PATCH 17/65] using printf instead of echo --- debuntu/all/Dockerfile | 2 +- debuntu/mini/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 9b01b79..26939a7 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -159,7 +159,7 @@ RUN set -ex \ && if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ apt-get update -y \ && apt-get install -y --no-install-recommends dpkg-dev \ - && echo "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main" \ + && printf "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main\n" \ > /etc/apt/sources.list.d/debian-src.sources \ && apt-get update -y \ && apt-get source mpich \ diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index b910a96..0e266de 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -163,7 +163,7 @@ RUN set -ex \ && if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ apt-get update -y \ && apt-get install -y --no-install-recommends dpkg-dev \ - && echo "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main" \ + && printf "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main\n" \ > /etc/apt/sources.list.d/debian-src.sources \ && apt-get update -y \ && apt-get source mpich \ From 81c2d284e73ebda6531bdf8b0a3ad33b3a29509d Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 4 Jun 2026 15:35:19 +0200 Subject: [PATCH 18/65] remove matrix to avoid crash in gcc baselibs dockerfile --- spack/3-baselibs/Dockerfile | 45 +++++++++++++++---------------------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 447384e..b85490d 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -9,8 +9,7 @@ LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" ARG VERSION - -# Download spack +ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"] COPY ${VERSION}.branch spack.branch RUN mkdir -p ${SPACK_ROOT} \ && git clone --depth 1 -b $(cat spack.branch) ${SPACK_ROOT} \ @@ -38,11 +37,8 @@ ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Install the spack compiler with our latest system compiler COPY ${COMPILER}.lst compilerpkg.lst -RUN spack solve -I -U \ - "$(cat compilerpkg.lst)%$(spack compilers | tr ' ' '\n' | grep @)" \ - && spack install ${SPACK_INSTALL_ARGS} -U \ - "$(cat compilerpkg.lst)%$(spack compilers | tr ' ' '\n' | grep @)" - +RUN spack install ${SPACK_INSTALL_ARGS} -U \ + "$(cat compilerpkg.lst)~bootstrap%$(spack compilers | tr ' ' '\n' | grep @)" # Prevent building any new compiler RUN spack config --scope site add 'packages:llvm:buildable: false' @@ -88,38 +84,33 @@ fi EORUN -# Install an environment with our base libraries using the compiler ref we just generated +# Create an environment with our base libraries using the compiler ref we just generated COPY <<'EOCOPY' spack.yaml spack: view: false + concretizer: + unify: when_possible definitions: - buildeps: [] - - compiler: [] - libs: [] - - mpi: [] - - mpilibs: [] specs: - - '$buildeps' - - matrix: - - ['$%compiler'] - - - '$libs' - - '$mpi' - - matrix: - - ['$%compiler'] - - ['$^mpi'] - - ['$mpilibs'] + - $buildeps + - $libs EOCOPY RUN spack env create pdienv spack.yaml COPY deps.sh deps.sh -RUN . deps.sh && spack -e pdienv add -l buildeps ${BASE_BUILDDEPS} -RUN . deps.sh && spack -e pdienv add -l libs ${BASE_LIBS} -RUN < Date: Thu, 4 Jun 2026 16:00:14 +0200 Subject: [PATCH 19/65] select ~bootstrap variant only for gcc, not for clang compiler --- spack/3-baselibs/Dockerfile | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index b85490d..1761ba0 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -36,10 +36,19 @@ ARG COMPILER ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Install the spack compiler with our latest system compiler -COPY ${COMPILER}.lst compilerpkg.lst -RUN spack install ${SPACK_INSTALL_ARGS} -U \ - "$(cat compilerpkg.lst)~bootstrap%$(spack compilers | tr ' ' '\n' | grep @)" - +COPY ${COMPILER}.lst compilerpkg.lst +RUN < Date: Thu, 4 Jun 2026 16:18:07 +0200 Subject: [PATCH 20/65] use toolchain only for spack version > 1 --- spack/3-baselibs/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 1761ba0..fe029d9 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -114,8 +114,12 @@ RUN <<'EORUN' set -e . deps.sh spack -e pdienv add -l buildeps ${BASE_BUILDDEPS} +if spack --version | grep -qs '^1\.' +then CREF="%pditoolchain" # 1.x: the toolchain +else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" # pre-1.0: the built compiler, e.g. %gcc@16.1.0 +fi for p in ${BASE_LIBS}; do - spack -e pdienv add -l libs "$p %pditoolchain" + spack -e pdienv add -l libs "$p ${CREF}" done EORUN From 1244993f6fbe7a664435e68866c631df3c9bc6a8 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 5 Jun 2026 10:48:13 +0200 Subject: [PATCH 21/65] make clang link with lld --- spack/3-baselibs/Dockerfile | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index fe029d9..d58d0af 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -115,11 +115,16 @@ set -e . deps.sh spack -e pdienv add -l buildeps ${BASE_BUILDDEPS} if spack --version | grep -qs '^1\.' -then CREF="%pditoolchain" # 1.x: the toolchain -else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" # pre-1.0: the built compiler, e.g. %gcc@16.1.0 +then CREF="%pditoolchain" +else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" +fi +if spack find llvm &>/dev/null; then + LTOFLAGS='ldflags==-fuse-ld=lld' +else + LTOFLAGS='' fi for p in ${BASE_LIBS}; do - spack -e pdienv add -l libs "$p ${CREF}" + spack -e pdienv add -l libs "$p ${CREF} ${LTOFLAGS}" done EORUN From 7820ea4f94c0e70ac324aac591851636c324a9a5 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 5 Jun 2026 10:55:26 +0200 Subject: [PATCH 22/65] apply change conditionally for newest spack version --- spack/3-baselibs/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index d58d0af..6f8c794 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -118,7 +118,7 @@ if spack --version | grep -qs '^1\.' then CREF="%pditoolchain" else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" fi -if spack find llvm &>/dev/null; then +if spack --version | grep -qs '^1\.' && spack find llvm &>/dev/null; then LTOFLAGS='ldflags==-fuse-ld=lld' else LTOFLAGS='' From 8c3e6fba85643a26de68d3496daa665003a5cc48 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 5 Jun 2026 15:14:08 +0200 Subject: [PATCH 23/65] disabling LTO lfor doxygen only --- spack/3-baselibs/Dockerfile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 6f8c794..710446d 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -99,6 +99,10 @@ spack: view: false concretizer: unify: when_possible + packages: + doxygen: + require: + - "cxxflags=-fno-lto ldflags=-fno-lto" definitions: - buildeps: [] - libs: [] @@ -117,14 +121,8 @@ spack -e pdienv add -l buildeps ${BASE_BUILDDEPS} if spack --version | grep -qs '^1\.' then CREF="%pditoolchain" else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" -fi -if spack --version | grep -qs '^1\.' && spack find llvm &>/dev/null; then - LTOFLAGS='ldflags==-fuse-ld=lld' -else - LTOFLAGS='' -fi for p in ${BASE_LIBS}; do - spack -e pdienv add -l libs "$p ${CREF} ${LTOFLAGS}" + spack -e pdienv add -l libs "$p ${CREF}" done EORUN From 52075e25f8e1a96db1230ffc20e2127f102fecd6 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 5 Jun 2026 15:18:20 +0200 Subject: [PATCH 24/65] fix syntax --- spack/3-baselibs/Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 710446d..05751d6 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -101,8 +101,7 @@ spack: unify: when_possible packages: doxygen: - require: - - "cxxflags=-fno-lto ldflags=-fno-lto" + require: "cxxflags=-fno-lto ldflags=-fno-lto" definitions: - buildeps: [] - libs: [] From c4bc37cfa8fa3a2d6a3094c185169b864da7a5ca Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 5 Jun 2026 15:23:12 +0200 Subject: [PATCH 25/65] re-add deleted "fi" --- spack/3-baselibs/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 05751d6..bf42a0e 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -118,8 +118,9 @@ set -e . deps.sh spack -e pdienv add -l buildeps ${BASE_BUILDDEPS} if spack --version | grep -qs '^1\.' -then CREF="%pditoolchain" +then CREF="%pditoolchain" else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" +fi for p in ${BASE_LIBS}; do spack -e pdienv add -l libs "$p ${CREF}" done From d334c0014aaaaa20e0fc87e3be6cbb4fceddccbc Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Fri, 5 Jun 2026 15:29:20 +0200 Subject: [PATCH 26/65] try to diasble LTO as a spec --- spack/3-baselibs/Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index bf42a0e..ffb764e 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -99,9 +99,6 @@ spack: view: false concretizer: unify: when_possible - packages: - doxygen: - require: "cxxflags=-fno-lto ldflags=-fno-lto" definitions: - buildeps: [] - libs: [] @@ -121,6 +118,7 @@ if spack --version | grep -qs '^1\.' then CREF="%pditoolchain" else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" fi +spack -e pdienv add doxygen cxxflags=-fno-lto ldflags=-fno-lto ${CREF} for p in ${BASE_LIBS}; do spack -e pdienv add -l libs "$p ${CREF}" done From f4e941053040eb0a14b647b4b0f5460fddc685ca Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Sat, 6 Jun 2026 01:23:39 +0200 Subject: [PATCH 27/65] remove double include of doxygen --- spack/3-baselibs/Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index ffb764e..a85704d 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -113,12 +113,17 @@ COPY deps.sh deps.sh RUN <<'EORUN' set -e . deps.sh -spack -e pdienv add -l buildeps ${BASE_BUILDDEPS} if spack --version | grep -qs '^1\.' then CREF="%pditoolchain" else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" fi -spack -e pdienv add doxygen cxxflags=-fno-lto ldflags=-fno-lto ${CREF} +for p in ${BASE_BUILDDEPS}; do + if [ "$p" = doxygen ]; then + spack -e pdienv add -l buildeps "doxygen ${CREF} cxxflags=-fno-lto ldflags=-fno-lto" + else + spack -e pdienv add -l buildeps "$p ${CREF}" + fi +done for p in ${BASE_LIBS}; do spack -e pdienv add -l libs "$p ${CREF}" done From 56194a586fc60e9b46cfa8cf5fdd518944d0bfca Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Mon, 8 Jun 2026 12:31:11 +0200 Subject: [PATCH 28/65] selecting spack llvm variant with gold plugin support --- spack/3-baselibs/Dockerfile | 4 ---- spack/3-baselibs/clang.lst | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index a85704d..b1e368c 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -118,11 +118,7 @@ then CREF="%pditoolchain" else CREF="%$(spack compilers | tr ' ' '\n' | grep @)" fi for p in ${BASE_BUILDDEPS}; do - if [ "$p" = doxygen ]; then - spack -e pdienv add -l buildeps "doxygen ${CREF} cxxflags=-fno-lto ldflags=-fno-lto" - else spack -e pdienv add -l buildeps "$p ${CREF}" - fi done for p in ${BASE_LIBS}; do spack -e pdienv add -l libs "$p ${CREF}" diff --git a/spack/3-baselibs/clang.lst b/spack/3-baselibs/clang.lst index 39f235a..7caad58 100644 --- a/spack/3-baselibs/clang.lst +++ b/spack/3-baselibs/clang.lst @@ -1 +1 @@ -llvm+llvm_dylib+link_llvm_dylib~lldb +llvm+llvm_dylib+link_llvm_dylib~lldb+gold \ No newline at end of file From a106b7b30705aa115522a5e823468f9de0a7104f Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Mon, 8 Jun 2026 16:25:18 +0200 Subject: [PATCH 29/65] re-instert mpi and mpilibs in pdienv --- spack/3-baselibs/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index b1e368c..bc85f93 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -102,9 +102,13 @@ spack: definitions: - buildeps: [] - libs: [] + - mpi: [] + - mpilibs: [] specs: - $buildeps - $libs + - $mpi + - $mpilibs EOCOPY RUN spack env create pdienv spack.yaml COPY deps.sh deps.sh From d5eb7b3a7af33e31ac1dccf2ae2f0f0934d452f4 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 9 Jun 2026 09:57:52 +0200 Subject: [PATCH 30/65] workaround to gcc 16 and openmpi inline issue --- spack/4-mini/Dockerfile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index 111f4ef..f47408a 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -13,7 +13,15 @@ ARG MPI 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 <<'EORUN' +set -e +if [ "${COMPILER}" = gcc ] && [ "${MPI}" = openmpi ] && spack --version | grep -qs '^1\.'; then +# Use main branch of openmpi because it contains fix to issue #13756 that is still unreleased. + spack -e pdienv add -l mpi "openmpi@main" +else + spack -e pdienv add -l mpi "${MPI}" +fi +EORUN RUN . deps.sh && spack -e pdienv add -l mpilibs ${BASE_MPILIBS} RUN spack -e pdienv concretize -f --reuse RUN spack -e pdienv install ${SPACK_INSTALL_ARGS} From 79398fe755974f8d508ca46ed2f9df2f6b448951 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 9 Jun 2026 10:20:24 +0200 Subject: [PATCH 31/65] debug message --- spack/3-baselibs/Dockerfile | 1 + spack/4-mini/Dockerfile | 1 + 2 files changed, 2 insertions(+) diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index bc85f93..af28ec4 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -36,6 +36,7 @@ ARG COMPILER ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Install the spack compiler with our latest system compiler +# Select the ~bootstrap gcc variant as the 3-stage bootstrap fails on latest spack COPY ${COMPILER}.lst compilerpkg.lst RUN < Date: Tue, 9 Jun 2026 10:37:26 +0200 Subject: [PATCH 32/65] put COMPILER into scope --- spack/4-mini/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index b8ba548..c39b50e 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -10,6 +10,7 @@ LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" ARG MPI +ARG COMPILER 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 From b2c9edec73b8259962e8aafd7acce3b48e67f99a Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 9 Jun 2026 11:45:23 +0200 Subject: [PATCH 33/65] changed registry for final stage and refactored --- README.md | 2 +- debuntu/all/Dockerfile | 12 ------------ debuntu/mini/Dockerfile | 14 +------------- spack/3-baselibs/Dockerfile | 5 ++--- spack/5-all/Dockerfile | 2 -- spack/6-finalize/Dockerfile | 4 ++-- 6 files changed, 6 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 03ca901..3e2547c 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ With the following parameters: * `variant`: - `mini`: dependencies "vendored" in PDI are not included in the image, - `all`: dependencies "vendored" in PDI are included in the image, - - `pdi`: PDI is included in the image. + - `pdi`: PDI is included in the image. The VeloC plugin is not present in this image for the time being. ## Full Spack images diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 26939a7..6d1345a 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -73,7 +73,6 @@ RUN set -ex \ && rm -rf /root/* \ && [ -f ~/.profile ] && ( sed -i 's/mesg n/( tty -s \&\& mesg n || true )/g' ~/.profile || true ) - # stage : veloc download FROM main AS velocdl @@ -87,7 +86,6 @@ RUN set -ex \ && cmake --install /tmp/kvtree/build \ && rm -rf /tmp/kvtree - RUN set -ex \ && git clone --depth 1 -b v0.8.0 https://github.com/ECP-VeloC/AXL.git /tmp/axl \ && cmake -S /tmp/axl -B /tmp/axl/build \ @@ -97,7 +95,6 @@ RUN set -ex \ && cmake --install /tmp/axl/build \ && rm -rf /tmp/axl - RUN set -ex \ && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/rankstr.git /tmp/rankstr \ && cmake -S /tmp/rankstr -B /tmp/rankstr/build \ @@ -107,7 +104,6 @@ RUN set -ex \ && cmake --install /tmp/rankstr/build \ && rm -rf /tmp/rankstr - RUN set -ex \ && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/redset.git /tmp/redset \ && cmake -S /tmp/redset -B /tmp/redset/build \ @@ -117,7 +113,6 @@ RUN set -ex \ && cmake --install /tmp/redset/build \ && rm -rf /tmp/redset - RUN set -ex \ && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/shuffile.git /tmp/shuffile \ && cmake -S /tmp/shuffile -B /tmp/shuffile/build \ @@ -127,7 +122,6 @@ RUN set -ex \ && cmake --install /tmp/shuffile/build \ && rm -rf /tmp/shuffile - RUN set -ex \ && git clone --depth 1 -b v0.4.0 https://github.com/ECP-VeloC/er.git /tmp/er \ && cmake -S /tmp/er -B /tmp/er/build \ @@ -137,7 +131,6 @@ RUN set -ex \ && cmake --install /tmp/er/build \ && rm -rf /tmp/er - RUN set -ex \ && git clone --depth 1 -b 'veloc-1.8' https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ && cmake -S /tmp/veloc -B /tmp/veloc/build \ @@ -192,7 +185,6 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI fi RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig - ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} @@ -205,14 +197,12 @@ ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} - # stage : pdi download FROM alpine/git AS pdidl RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi - # stage : test FROM complete-main AS test @@ -222,6 +212,4 @@ COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi RUN export VERBOSE=1 \ && bash pdi/bin/build_and_run_all_tests - - FROM complete-main diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 0e266de..d550433 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -79,7 +79,6 @@ RUN set -ex \ && apt-get autoclean -y \ && rm -rf /var/lib/apt/lists/* - RUN set -ex \ && git clone --depth 1 -b v1.4.0 https://github.com/ECP-VeloC/KVTree.git /tmp/kvtree \ && cmake -S /tmp/kvtree -B /tmp/kvtree/build \ @@ -89,7 +88,6 @@ RUN set -ex \ && cmake --install /tmp/kvtree/build \ && rm -rf /tmp/kvtree - RUN set -ex \ && git clone --depth 1 -b v0.8.0 https://github.com/ECP-VeloC/AXL.git /tmp/axl \ && cmake -S /tmp/axl -B /tmp/axl/build \ @@ -99,7 +97,6 @@ RUN set -ex \ && cmake --install /tmp/axl/build \ && rm -rf /tmp/axl - RUN set -ex \ && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/rankstr.git /tmp/rankstr \ && cmake -S /tmp/rankstr -B /tmp/rankstr/build \ @@ -109,7 +106,6 @@ RUN set -ex \ && cmake --install /tmp/rankstr/build \ && rm -rf /tmp/rankstr - RUN set -ex \ && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/redset.git /tmp/redset \ && cmake -S /tmp/redset -B /tmp/redset/build \ @@ -119,7 +115,6 @@ RUN set -ex \ && cmake --install /tmp/redset/build \ && rm -rf /tmp/redset - RUN set -ex \ && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/shuffile.git /tmp/shuffile \ && cmake -S /tmp/shuffile -B /tmp/shuffile/build \ @@ -129,7 +124,6 @@ RUN set -ex \ && cmake --install /tmp/shuffile/build \ && rm -rf /tmp/shuffile - RUN set -ex \ && git clone --depth 1 -b v0.4.0 https://github.com/ECP-VeloC/er.git /tmp/er \ && cmake -S /tmp/er -B /tmp/er/build \ @@ -139,7 +133,6 @@ RUN set -ex \ && cmake --install /tmp/er/build \ && rm -rf /tmp/er - RUN set -ex \ && git clone --depth 1 -b 'veloc-1.8' https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ && cmake -S /tmp/veloc -B /tmp/veloc/build \ @@ -151,9 +144,8 @@ RUN set -ex \ && cmake --install /tmp/veloc/build \ && rm -rf /tmp/veloc - - # stage : mpich download (with options for shared memory support) + FROM main AS mpichdl ARG MPI ARG DISTRO @@ -207,14 +199,12 @@ ENV HOME=/home/ci USER ci:ci WORKDIR ${HOME} - # stage : pdi download FROM alpine/git AS pdidl RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi - # stage : test FROM complete-main AS test @@ -224,6 +214,4 @@ COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi RUN export VERBOSE=1 \ && bash pdi/bin/build_and_run_all_tests - - FROM complete-main diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index af28ec4..c9b6606 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -36,12 +36,12 @@ ARG COMPILER ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" # Install the spack compiler with our latest system compiler -# Select the ~bootstrap gcc variant as the 3-stage bootstrap fails on latest spack COPY ${COMPILER}.lst compilerpkg.lst RUN < Date: Tue, 9 Jun 2026 16:47:53 +0200 Subject: [PATCH 34/65] run veoc tests --- spack/6-finalize/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/6-finalize/Dockerfile b/spack/6-finalize/Dockerfile index 066beda..4cc3aab 100644 --- a/spack/6-finalize/Dockerfile +++ b/spack/6-finalize/Dockerfile @@ -157,7 +157,7 @@ ENV HOME=/home/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 --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi From 81981860aded1d1ade7eaa01baf9f75bacc61eb8 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 10 Jun 2026 13:43:26 +0200 Subject: [PATCH 35/65] disable veloc tests in image with veloc 1.5 as plugin requires version 1.7 --- spack/6-finalize/Dockerfile | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/spack/6-finalize/Dockerfile b/spack/6-finalize/Dockerfile index 4cc3aab..0b0fa6a 100644 --- a/spack/6-finalize/Dockerfile +++ b/spack/6-finalize/Dockerfile @@ -159,16 +159,23 @@ FROM alpine/git AS pdidl RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi - - - - FROM main AS test +ARG VERSION + COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi -RUN export VERBOSE=1 \ - && bash pdi/bin/build_and_run_all_tests +# The oldest release of spack only provides veloc package until version 1.5 +# The VeloC plugin requires at least veloc 1.7, therefore, skips these steps +# in the image built with spack 0.19 s +RUN <<'EORUN' +set -e +export VERBOSE=1 +if [ "${VERSION}" = oldest ]; then + export CTEST_EXCLUDE='^(veloc_test_|PDI_example_veloc)' +fi +bash pdi/bin/build_and_run_all_tests +EORUN From 59502d09c198343483fde12c07e8ecbcf5c1f7e8 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 10 Jun 2026 14:45:54 +0200 Subject: [PATCH 36/65] disable the building of the plugin, not just the tests execution --- spack/6-finalize/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/6-finalize/Dockerfile b/spack/6-finalize/Dockerfile index 0b0fa6a..fc529e3 100644 --- a/spack/6-finalize/Dockerfile +++ b/spack/6-finalize/Dockerfile @@ -172,7 +172,7 @@ RUN <<'EORUN' set -e export VERBOSE=1 if [ "${VERSION}" = oldest ]; then - export CTEST_EXCLUDE='^(veloc_test_|PDI_example_veloc)' + export CMAKE_FLAGS="-DBUILD_VELOC_PLUGIN=OFF" fi bash pdi/bin/build_and_run_all_tests EORUN From be4e7a213ceff02c017ae3a85cd16ddff4cf12be Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 10 Jun 2026 15:18:08 +0200 Subject: [PATCH 37/65] change veloc install in debuntu images to use install script --- debuntu/all/Dockerfile | 76 +++++--------------------------------- debuntu/mini/Dockerfile | 81 ++++------------------------------------- 2 files changed, 18 insertions(+), 139 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 6d1345a..89781bd 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -77,72 +77,15 @@ RUN set -ex \ FROM main AS velocdl -RUN set -ex \ - && git clone --depth 1 -b v1.4.0 https://github.com/ECP-VeloC/KVTree.git /tmp/kvtree \ - && cmake -S /tmp/kvtree -B /tmp/kvtree/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/kvtree/build --parallel \ - && cmake --install /tmp/kvtree/build \ - && rm -rf /tmp/kvtree - -RUN set -ex \ - && git clone --depth 1 -b v0.8.0 https://github.com/ECP-VeloC/AXL.git /tmp/axl \ - && cmake -S /tmp/axl -B /tmp/axl/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/axl/build --parallel \ - && cmake --install /tmp/axl/build \ - && rm -rf /tmp/axl +RUN pip3 install --break-system-packages beautifulsoup4 wget -RUN set -ex \ - && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/rankstr.git /tmp/rankstr \ - && cmake -S /tmp/rankstr -B /tmp/rankstr/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/rankstr/build --parallel \ - && cmake --install /tmp/rankstr/build \ - && rm -rf /tmp/rankstr - -RUN set -ex \ - && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/redset.git /tmp/redset \ - && cmake -S /tmp/redset -B /tmp/redset/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/redset/build --parallel \ - && cmake --install /tmp/redset/build \ - && rm -rf /tmp/redset +WORKDIR /usr/veloc-src +RUN git clone https://github.com/ECP-VeloC/VELOC.git . \ + && mkdir -p /usr/local \ + && python3 auto-install.py /usr/local -RUN set -ex \ - && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/shuffile.git /tmp/shuffile \ - && cmake -S /tmp/shuffile -B /tmp/shuffile/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/shuffile/build --parallel \ - && cmake --install /tmp/shuffile/build \ - && rm -rf /tmp/shuffile - -RUN set -ex \ - && git clone --depth 1 -b v0.4.0 https://github.com/ECP-VeloC/er.git /tmp/er \ - && cmake -S /tmp/er -B /tmp/er/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/er/build --parallel \ - && cmake --install /tmp/er/build \ - && rm -rf /tmp/er - -RUN set -ex \ - && git clone --depth 1 -b 'veloc-1.8' https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ - && cmake -S /tmp/veloc -B /tmp/veloc/build \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - -DCOMM_QUEUE=ipc_queue \ - -DENABLE_TESTS=OFF \ - -DCMAKE_CXX_FLAGS="-DOMPI_SKIP_MPICXX=1" \ - && cmake --build /tmp/veloc/build --parallel \ - && cmake --install /tmp/veloc/build \ - && rm -rf /tmp/veloc - -# stage : mpich download (with options for shared memory support) +# stage : mpich download enabling options for shared memory support +# shared mem support is needed for VeloC FROM main AS mpichdl ARG MPI ARG DISTRO @@ -175,7 +118,7 @@ FROM main AS complete-main ARG DISTRO ARG DISTRO_VERSION ARG MPI -COPY --from=velocdl /usr/local /usr/local +COPY --from=velocdl /usr/local /usr/local_veloc COPY --from=mpichdl /usr/local /usr/local_mpich RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ cp -a /usr/local_mpich/. /usr/local/ \ @@ -183,7 +126,8 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI else \ rm -rf /usr/local_mpich; \ fi -RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig +RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ + && ldconfig ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index d550433..09015f4 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -71,78 +71,12 @@ RUN set -ex \ FROM main AS velocdl -RUN set -ex \ - && apt-get update -y \ - && apt-get install -y --no-install-recommends \ - git \ - && apt-get clean -y \ - && apt-get autoclean -y \ - && rm -rf /var/lib/apt/lists/* - -RUN set -ex \ - && git clone --depth 1 -b v1.4.0 https://github.com/ECP-VeloC/KVTree.git /tmp/kvtree \ - && cmake -S /tmp/kvtree -B /tmp/kvtree/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/kvtree/build --parallel \ - && cmake --install /tmp/kvtree/build \ - && rm -rf /tmp/kvtree - -RUN set -ex \ - && git clone --depth 1 -b v0.8.0 https://github.com/ECP-VeloC/AXL.git /tmp/axl \ - && cmake -S /tmp/axl -B /tmp/axl/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/axl/build --parallel \ - && cmake --install /tmp/axl/build \ - && rm -rf /tmp/axl +RUN pip3 install --break-system-packages beautifulsoup4 wget -RUN set -ex \ - && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/rankstr.git /tmp/rankstr \ - && cmake -S /tmp/rankstr -B /tmp/rankstr/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/rankstr/build --parallel \ - && cmake --install /tmp/rankstr/build \ - && rm -rf /tmp/rankstr - -RUN set -ex \ - && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/redset.git /tmp/redset \ - && cmake -S /tmp/redset -B /tmp/redset/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/redset/build --parallel \ - && cmake --install /tmp/redset/build \ - && rm -rf /tmp/redset - -RUN set -ex \ - && git clone --depth 1 -b v0.3.0 https://github.com/ECP-VeloC/shuffile.git /tmp/shuffile \ - && cmake -S /tmp/shuffile -B /tmp/shuffile/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/shuffile/build --parallel \ - && cmake --install /tmp/shuffile/build \ - && rm -rf /tmp/shuffile - -RUN set -ex \ - && git clone --depth 1 -b v0.4.0 https://github.com/ECP-VeloC/er.git /tmp/er \ - && cmake -S /tmp/er -B /tmp/er/build \ - -DENABLE_TESTS=OFF \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - && cmake --build /tmp/er/build --parallel \ - && cmake --install /tmp/er/build \ - && rm -rf /tmp/er - -RUN set -ex \ - && git clone --depth 1 -b 'veloc-1.8' https://github.com/ECP-VeloC/veloc.git /tmp/veloc \ - && cmake -S /tmp/veloc -B /tmp/veloc/build \ - -DCMAKE_INSTALL_PREFIX=/usr/local \ - -DCOMM_QUEUE=socket_queue \ - -DENABLE_TESTS=OFF \ - -DCMAKE_CXX_FLAGS="-DOMPI_SKIP_MPICXX=1" \ - && cmake --build /tmp/veloc/build --parallel \ - && cmake --install /tmp/veloc/build \ - && rm -rf /tmp/veloc +WORKDIR /usr/veloc-src +RUN git clone https://github.com/ECP-VeloC/VELOC.git . \ + && mkdir -p /usr/local \ + && python3 auto-install.py /usr/local # stage : mpich download (with options for shared memory support) @@ -178,7 +112,7 @@ FROM main AS complete-main ARG DISTRO ARG DISTRO_VERSION ARG MPI -COPY --from=velocdl /usr/local /usr/local +COPY --from=velocdl /usr/local /usr/local_veloc COPY --from=mpichdl /usr/local /usr/local_mpich RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ cp -a /usr/local_mpich/. /usr/local/ \ @@ -186,7 +120,8 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI else \ rm -rf /usr/local_mpich; \ fi -RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/veloc.conf && ldconfig +RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ + && ldconfig ENV PDI_SYSTEM=${DISTRO} ENV PDI_COMPILER=gcc From 9764737b4a7fe66db3ababaf7ffa1b74202bff4b Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 10 Jun 2026 15:58:25 +0200 Subject: [PATCH 38/65] install different versions of bs4 and wget --- debuntu/all/Dockerfile | 9 ++++++++- debuntu/mini/Dockerfile | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 89781bd..9761e96 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -77,7 +77,11 @@ RUN set -ex \ FROM main AS velocdl -RUN pip3 install --break-system-packages beautifulsoup4 wget +RUN if pip3 install --help | grep -q -- --break-system-packages; then \ + pip3 install --break-system-packages beautifulsoup4 wget; \ + else \ + pip3 install beautifulsoup4 wget; \ + fi WORKDIR /usr/veloc-src RUN git clone https://github.com/ECP-VeloC/VELOC.git . \ @@ -129,6 +133,9 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig +ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} +ENV PATH=/usr/local_veloc/bin:${PATH} + ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 09015f4..846aef9 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -71,7 +71,11 @@ RUN set -ex \ FROM main AS velocdl -RUN pip3 install --break-system-packages beautifulsoup4 wget +RUN if pip3 install --help | grep -q -- --break-system-packages; then \ + pip3 install --break-system-packages beautifulsoup4 wget; \ + else \ + pip3 install beautifulsoup4 wget; \ + fi WORKDIR /usr/veloc-src RUN git clone https://github.com/ECP-VeloC/VELOC.git . \ @@ -123,6 +127,9 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig +ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} +ENV PATH=/usr/local_veloc/bin:${PATH} + ENV PDI_SYSTEM=${DISTRO} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} From 2423d30b535218ffb42453dc0345c2e00cb350b9 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 10 Jun 2026 16:07:01 +0200 Subject: [PATCH 39/65] include git in mini image --- debuntu/mini/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 846aef9..2cb052e 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -34,6 +34,7 @@ RUN set -ex \ build-essential \ cmake \ curl \ + git \ libspdlog-dev \ libboost-dev \ libssl-dev \ From 447d4f6c0f07657aeadf551747f308cf208c9806 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 10 Jun 2026 16:41:36 +0200 Subject: [PATCH 40/65] cleanup PR -- replace my fork with pdidev --- .github/actions/build/action.yml | 10 +++++----- .github/workflows/debuntu_docker_images.yml | 6 +++--- .github/workflows/spack_docker_images.yml | 18 +++++++++--------- debuntu/all/Dockerfile | 2 +- debuntu/mini/Dockerfile | 2 +- spack/6-finalize/Dockerfile | 2 +- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 920ba16..1524406 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -48,8 +48,8 @@ runs: run: | set -e if [ 'true' = '${{ contains(inputs.image-name,':') }}' ] - then CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" - else CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + then CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + else CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi echo "sha=${GITHUB_SHA:0:7}" >> "${GITHUB_OUTPUT}" if [ 'x${{ inputs.cache-to }}' = 'x' ] @@ -107,7 +107,7 @@ runs: build-args: | ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} - REGISTRY=ghcr.io/${{ github.repository_owner }}/test_env + REGISTRY=ghcr.io/pdidev/test_env context: "${{ inputs.context }}${{ inputs.path }}" push: false target: test @@ -122,9 +122,9 @@ runs: build-args: | ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} - REGISTRY=ghcr.io/${{ github.repository_owner }}/test_env + REGISTRY=ghcr.io/pdidev/test_env tags: | - ghcr.io/${{ github.repository_owner }}/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} + ghcr.io/pdidev/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} ${{ inputs.tags }} context: "${{ inputs.context }}${{ inputs.path }}" push: ${{ inputs.push }} diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 40d1e94..5104ad7 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -21,7 +21,7 @@ jobs: run: | if [ 'true' = "${{ github.event_name == 'push' || github.event_name == 'schedule' }}" ] then - echo "tags=ghcr.io/${{ github.repository_owner }}/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" + echo "tags=ghcr.io/pdidev/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" fi BASE="${{ matrix.base }}" echo "distro=${BASE%/*}" >> "${GITHUB_OUTPUT}" @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -41,4 +41,4 @@ jobs: DISTRO=${{ steps.info.outputs.distro }} DISTRO_VERSION=${{ steps.info.outputs.distro_version }} tags: | - ${{ steps.info.outputs.tags }} + ${{ steps.info.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 7981837..7604be8 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 1- base" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -29,7 +29,7 @@ jobs: image-name: base cache: ${{ github.event_name != 'schedule' && ( github.event_name != 'workflow_dispatch' || inputs.cache ) }} # cache for every run but scheduled ones - name: "Build and push 2- spackbase" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -47,7 +47,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 3- baselibs" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -69,7 +69,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 4- mini" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -80,7 +80,7 @@ jobs: COMPILER=${{ matrix.compiler }} MPI=${{ matrix.mpi }} - name: "Build and push 5- all" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -108,11 +108,11 @@ jobs: run: | if [ 'true' = "${{ github.event_name == 'push' || github.event_name == 'schedule' }}" ] then - echo "tags=ghcr.io/${{ github.repository_owner }}/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" - echo "fullspack=ghcr.io/${{ github.repository_owner }}/fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + echo "tags=ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + echo "fullspack=ghcr.io/pdidev/fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi - name: "Build and push" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -127,7 +127,7 @@ jobs: tags: | ${{ steps.info.outputs.tags }} - name: "Build and push fullspack" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 9761e96..1d3610e 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -152,7 +152,7 @@ WORKDIR ${HOME} FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi +RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi # stage : test diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 2cb052e..f417946 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -146,7 +146,7 @@ WORKDIR ${HOME} FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi +RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi # stage : test diff --git a/spack/6-finalize/Dockerfile b/spack/6-finalize/Dockerfile index fc529e3..4f90630 100644 --- a/spack/6-finalize/Dockerfile +++ b/spack/6-finalize/Dockerfile @@ -157,7 +157,7 @@ ENV HOME=/home/ci FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi +RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi FROM main AS test From c5a08e34ba4e7603220873dbebbbdeff10157683 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Wed, 10 Jun 2026 16:42:09 +0200 Subject: [PATCH 41/65] add newline removed by mistake --- spack/3-baselibs/clang.lst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack/3-baselibs/clang.lst b/spack/3-baselibs/clang.lst index 7caad58..d6c3948 100644 --- a/spack/3-baselibs/clang.lst +++ b/spack/3-baselibs/clang.lst @@ -1 +1 @@ -llvm+llvm_dylib+link_llvm_dylib~lldb+gold \ No newline at end of file +llvm+llvm_dylib+link_llvm_dylib~lldb+gold From ecb8bf5c69a0350a090fb944407784d90326f6cb Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 10:56:39 +0200 Subject: [PATCH 42/65] remove registry entry --- .github/actions/build/action.yml | 2 -- .github/workflows/debuntu_docker_images.yml | 3 ++- .github/workflows/spack_docker_images.yml | 10 +++++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 1524406..8fd2a20 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -107,7 +107,6 @@ runs: build-args: | ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} - REGISTRY=ghcr.io/pdidev/test_env context: "${{ inputs.context }}${{ inputs.path }}" push: false target: test @@ -122,7 +121,6 @@ runs: build-args: | ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} - REGISTRY=ghcr.io/pdidev/test_env tags: | ghcr.io/pdidev/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} ${{ inputs.tags }} diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 5104ad7..2c5960f 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -41,4 +41,5 @@ jobs: DISTRO=${{ steps.info.outputs.distro }} DISTRO_VERSION=${{ steps.info.outputs.distro_version }} tags: | - ${{ steps.info.outputs.tags }} \ No newline at end of file + ${{ steps.info.outputs.tags }} + \ No newline at end of file diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 7604be8..36710a8 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -29,7 +29,7 @@ jobs: image-name: base cache: ${{ github.event_name != 'schedule' && ( github.event_name != 'workflow_dispatch' || inputs.cache ) }} # cache for every run but scheduled ones - name: "Build and push 2- spackbase" - uses: pdidev/test_env/.github/actions/build@v4 + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -47,7 +47,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 3- baselibs" - uses: pdidev/test_env/.github/actions/build@v4 + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -69,7 +69,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 4- mini" - uses: pdidev/test_env/.github/actions/build@v4 + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -80,7 +80,7 @@ jobs: COMPILER=${{ matrix.compiler }} MPI=${{ matrix.mpi }} - name: "Build and push 5- all" - uses: pdidev/test_env/.github/actions/build@v4 + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -112,7 +112,7 @@ jobs: echo "fullspack=ghcr.io/pdidev/fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi - name: "Build and push" - uses: pdidev/test_env/.github/actions/build@v4 + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" From 5af0649cf8b38a9aeab806ccbd0917d1fc380242 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 11:04:50 +0200 Subject: [PATCH 43/65] sync with upstream repo and remove env variable declaration --- .github/workflows/debuntu_docker_images.yml | 3 +-- debuntu/all/Dockerfile | 3 --- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 2c5960f..5104ad7 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -41,5 +41,4 @@ jobs: DISTRO=${{ steps.info.outputs.distro }} DISTRO_VERSION=${{ steps.info.outputs.distro_version }} tags: | - ${{ steps.info.outputs.tags }} - \ No newline at end of file + ${{ steps.info.outputs.tags }} \ No newline at end of file diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 1d3610e..50508ff 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -133,9 +133,6 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig -ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} -ENV PATH=/usr/local_veloc/bin:${PATH} - ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} From e14e8a12068b35ccf669e31b021516e56186c637 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 11:05:12 +0200 Subject: [PATCH 44/65] sync with upstream repo --- .github/workflows/spack_docker_images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 36710a8..a5683ce 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push 1- base" - uses: pdidev/test_env/.github/actions/build@v4 + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" From cea55b44f0abb7c6dcc9e019a914d4584ef869d9 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 11:06:38 +0200 Subject: [PATCH 45/65] readd env vriables --- debuntu/all/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 50508ff..1d3610e 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -133,6 +133,9 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig +ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} +ENV PATH=/usr/local_veloc/bin:${PATH} + ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} From 3a285a52237508236a079313499c5e1a9096c19e Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 11:14:12 +0200 Subject: [PATCH 46/65] removing PATH env variable --- .github/actions/build/action.yml | 6 +++--- .github/workflows/debuntu_docker_images.yml | 4 ++-- debuntu/all/Dockerfile | 1 - 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 8fd2a20..8269368 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -48,8 +48,8 @@ runs: run: | set -e if [ 'true' = '${{ contains(inputs.image-name,':') }}' ] - then CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" - else CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + then CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + else CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi echo "sha=${GITHUB_SHA:0:7}" >> "${GITHUB_OUTPUT}" if [ 'x${{ inputs.cache-to }}' = 'x' ] @@ -122,7 +122,7 @@ runs: ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} tags: | - ghcr.io/pdidev/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} + ghcr.io/${{ github.repository_owner }}/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} ${{ inputs.tags }} context: "${{ inputs.context }}${{ inputs.path }}" push: ${{ inputs.push }} diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 5104ad7..70d5c67 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -21,7 +21,7 @@ jobs: run: | if [ 'true' = "${{ github.event_name == 'push' || github.event_name == 'schedule' }}" ] then - echo "tags=ghcr.io/pdidev/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" + echo "tags=ghcr.io/${{ github.repository_owner }}/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" fi BASE="${{ matrix.base }}" echo "distro=${BASE%/*}" >> "${GITHUB_OUTPUT}" @@ -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: ./.github/actions/build with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 1d3610e..7e27225 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -134,7 +134,6 @@ RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} -ENV PATH=/usr/local_veloc/bin:${PATH} ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc From fd36dce2ea278df3170d9183758b30c08e0389e0 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 11:24:36 +0200 Subject: [PATCH 47/65] reloving cmake_prefix_path env --- debuntu/all/Dockerfile | 2 -- debuntu/mini/Dockerfile | 1 - 2 files changed, 3 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 7e27225..50508ff 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -133,8 +133,6 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig -ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} - ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index f417946..f15e1be 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -129,7 +129,6 @@ RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} -ENV PATH=/usr/local_veloc/bin:${PATH} ENV PDI_SYSTEM=${DISTRO} ENV PDI_COMPILER=gcc From d945962bf3520ef6ddbb1b9c581412e4437b16ae Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 13:38:08 +0200 Subject: [PATCH 48/65] running veloc tests --- debuntu/all/Dockerfile | 2 +- debuntu/mini/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 50508ff..32b41e2 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -149,7 +149,7 @@ WORKDIR ${HOME} 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 --branch cp-plugin https://github.com/pdidev/pdi.git /root/pdi # stage : test diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index f15e1be..9d1c003 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -145,7 +145,7 @@ WORKDIR ${HOME} 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 --branch cp-plugin https://github.com/pdidev/pdi.git /root/pdi # stage : test From 11b1150d47316e41be450c6d00e9e93f742dda62 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 13:43:50 +0200 Subject: [PATCH 49/65] changing wrong git repo link --- debuntu/all/Dockerfile | 2 +- debuntu/mini/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 32b41e2..f9b1e58 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -149,7 +149,7 @@ WORKDIR ${HOME} FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/pdidev/pdi.git /root/pdi +RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi # stage : test diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 9d1c003..237166a 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -145,7 +145,7 @@ WORKDIR ${HOME} FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/pdidev/pdi.git /root/pdi +RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi # stage : test From 7c7dccd71dceb1c65a3bc1377c649e0f22c4748d Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 13:55:51 +0200 Subject: [PATCH 50/65] re-add cmake_prefix_path --- debuntu/all/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index f9b1e58..8f72e85 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -132,6 +132,8 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI fi RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig + +ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc From e3bd1bc6fae048ff61c3c6eeed52012ad2c68e8f Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 14:21:52 +0200 Subject: [PATCH 51/65] cleanup code for PR --- .github/actions/build/action.yml | 8 ++++---- .github/workflows/debuntu_docker_images.yml | 4 ++-- .github/workflows/spack_docker_images.yml | 2 +- debuntu/all/Dockerfile | 4 ++-- debuntu/mini/Dockerfile | 2 +- spack/3-baselibs/Dockerfile | 4 ++-- spack/4-mini/Dockerfile | 1 - spack/6-finalize/Dockerfile | 2 +- 8 files changed, 13 insertions(+), 14 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 8269368..17397e4 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -48,8 +48,8 @@ runs: run: | set -e if [ 'true' = '${{ contains(inputs.image-name,':') }}' ] - then CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" - else CACHEREF="ghcr.io/${{ github.repository_owner }}/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + then CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}-${{github.ref_name}}" >> "${GITHUB_OUTPUT}" + else CACHEREF="ghcr.io/pdidev/test_env/cache/${{inputs.image-name}}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi echo "sha=${GITHUB_SHA:0:7}" >> "${GITHUB_OUTPUT}" if [ 'x${{ inputs.cache-to }}' = 'x' ] @@ -122,7 +122,7 @@ runs: ${{ inputs.build-args }} IMAGE_TAG=${{ steps.info.outputs.sha }} tags: | - ghcr.io/${{ github.repository_owner }}/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} + ghcr.io/pdidev/test_env/${{ inputs.image-name }}${{ steps.info.outputs.sep }}${{ steps.info.outputs.sha }} ${{ inputs.tags }} context: "${{ inputs.context }}${{ inputs.path }}" push: ${{ inputs.push }} @@ -136,4 +136,4 @@ runs: then sudo swapoff /swapfile || true sudo rm -f /swapfile || true - fi + fi \ No newline at end of file diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 70d5c67..5104ad7 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -21,7 +21,7 @@ jobs: run: | if [ 'true' = "${{ github.event_name == 'push' || github.event_name == 'schedule' }}" ] then - echo "tags=ghcr.io/${{ github.repository_owner }}/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" + echo "tags=ghcr.io/pdidev/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }}:${{ github.ref_name }}" >> "${GITHUB_OUTPUT}" fi BASE="${{ matrix.base }}" echo "distro=${BASE%/*}" >> "${GITHUB_OUTPUT}" @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v6 with: { submodules: 'recursive' } - name: "Build and push" - uses: ./.github/actions/build + uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index a5683ce..c792604 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -140,4 +140,4 @@ jobs: MPI=${{ matrix.mpi }} LIBS=${{ matrix.level }} tags: | - ${{ steps.info.outputs.fullspack }} + ${{ steps.info.outputs.fullspack }} \ No newline at end of file diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 8f72e85..7e27225 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -132,7 +132,7 @@ RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSI fi RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ && ldconfig - + ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} @@ -151,7 +151,7 @@ WORKDIR ${HOME} FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi +RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi # stage : test diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 237166a..f15e1be 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -145,7 +145,7 @@ WORKDIR ${HOME} FROM alpine/git AS pdidl -RUN git -C /root clone --recurse-submodules --branch cp-plugin https://github.com/iole-bolognesi/pdi.git /root/pdi +RUN git -C /root clone --recurse-submodules https://github.com/pdidev/pdi.git /root/pdi # stage : test diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index c9b6606..6fd17cb 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -7,9 +7,9 @@ FROM ${REGISTRY}/spackbase:${IMAGE_TAG} LABEL "org.opencontainers.image.source"="https://github.com/pdidev/test_env" - ARG VERSION -ENTRYPOINT ["/bin/bash", "/opt/spack/share/spack/docker/entrypoint.bash"] + +# Download spack COPY ${VERSION}.branch spack.branch RUN mkdir -p ${SPACK_ROOT} \ && git clone --depth 1 -b $(cat spack.branch) ${SPACK_ROOT} \ diff --git a/spack/4-mini/Dockerfile b/spack/4-mini/Dockerfile index c39b50e..ac59316 100644 --- a/spack/4-mini/Dockerfile +++ b/spack/4-mini/Dockerfile @@ -16,7 +16,6 @@ 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 <<'EORUN' set -e -echo "DEBUG COMPILER=[${COMPILER}] MPI=[${MPI}] spackver=[$(spack --version)]" if [ "${COMPILER}" = gcc ] && [ "${MPI}" = openmpi ] && spack --version | grep -qs '^1\.'; then # Use main branch of openmpi because it contains fix to issue #13756 that is still unreleased. spack -e pdienv add -l mpi "openmpi@main" diff --git a/spack/6-finalize/Dockerfile b/spack/6-finalize/Dockerfile index 4f90630..8f63b43 100644 --- a/spack/6-finalize/Dockerfile +++ b/spack/6-finalize/Dockerfile @@ -167,7 +167,7 @@ COPY --from=pdidl --chown=ci:ci /root/pdi /home/ci/pdi # The oldest release of spack only provides veloc package until version 1.5 # The VeloC plugin requires at least veloc 1.7, therefore, skips these steps -# in the image built with spack 0.19 s +# in the image built with spack v 0.19 RUN <<'EORUN' set -e export VERBOSE=1 From 12a702e5afe1a45a543e877a8b0e7319c95de3ad Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 14:24:16 +0200 Subject: [PATCH 52/65] adding newline --- .github/actions/build/action.yml | 3 ++- .github/workflows/debuntu_docker_images.yml | 3 ++- .github/workflows/spack_docker_images.yml | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 17397e4..36f1038 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -136,4 +136,5 @@ runs: then sudo swapoff /swapfile || true sudo rm -f /swapfile || true - fi \ No newline at end of file + fi + \ No newline at end of file diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 5104ad7..2c5960f 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -41,4 +41,5 @@ jobs: DISTRO=${{ steps.info.outputs.distro }} DISTRO_VERSION=${{ steps.info.outputs.distro_version }} tags: | - ${{ steps.info.outputs.tags }} \ No newline at end of file + ${{ steps.info.outputs.tags }} + \ No newline at end of file diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index c792604..83a52e0 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -140,4 +140,5 @@ jobs: MPI=${{ matrix.mpi }} LIBS=${{ matrix.level }} tags: | - ${{ steps.info.outputs.fullspack }} \ No newline at end of file + ${{ steps.info.outputs.fullspack }} + \ No newline at end of file From 569613f4cbd8385fb2ff93847eacca1c069703a7 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Thu, 11 Jun 2026 14:33:00 +0200 Subject: [PATCH 53/65] remove empty line --- .github/workflows/debuntu_docker_images.yml | 1 - .github/workflows/run_clang_format.yml | 2 +- .github/workflows/spack_docker_images.yml | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 2c5960f..1725881 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -42,4 +42,3 @@ jobs: DISTRO_VERSION=${{ steps.info.outputs.distro_version }} tags: | ${{ steps.info.outputs.tags }} - \ No newline at end of file diff --git a/.github/workflows/run_clang_format.yml b/.github/workflows/run_clang_format.yml index 182d466..4858b4c 100644 --- a/.github/workflows/run_clang_format.yml +++ b/.github/workflows/run_clang_format.yml @@ -27,4 +27,4 @@ jobs: context: ./ path: run_clang_format image-name: run-clang-format - tags: ${{ steps.info.outputs.tags }} + tags: ${{ steps.info.outputs.tags }} \ No newline at end of file diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index 83a52e0..c792604 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -140,5 +140,4 @@ jobs: MPI=${{ matrix.mpi }} LIBS=${{ matrix.level }} tags: | - ${{ steps.info.outputs.fullspack }} - \ No newline at end of file + ${{ steps.info.outputs.fullspack }} \ No newline at end of file From a322ea6dd11e6eaba1953ca8d9809bef1f265184 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 23 Jun 2026 09:56:44 +0200 Subject: [PATCH 54/65] test doxygen in mini variant after merge --- .github/workflows/debuntu_docker_images.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 1725881..9c8c38c 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -28,7 +28,7 @@ jobs: echo "distro_version=${BASE##*/}" >> "${GITHUB_OUTPUT}" - uses: actions/checkout@v6 with: { submodules: 'recursive' } - - name: "Build and push" + - name: "Build and no push" uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" @@ -36,6 +36,7 @@ jobs: path: debuntu/${{ matrix.variant }} image-name: ${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }} test: "${{ matrix.variant != 'pdi' }}" # should be true, except for "pdi" variant + push : "false" build-args: | MPI=${{ matrix.mpi }} DISTRO=${{ steps.info.outputs.distro }} From 6ca461c61a2cc156df23f741444b20cd40c2d663 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 23 Jun 2026 10:13:15 +0200 Subject: [PATCH 55/65] re-add doxygen in mini Dockerfile --- .github/workflows/debuntu_docker_images.yml | 1 + debuntu/mini/Dockerfile | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 9c8c38c..57b0db2 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -37,6 +37,7 @@ jobs: image-name: ${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }} test: "${{ matrix.variant != 'pdi' }}" # should be true, except for "pdi" variant push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" build-args: | MPI=${{ matrix.mpi }} DISTRO=${{ steps.info.outputs.distro }} diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 5bf7137..69a25da 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -33,6 +33,7 @@ RUN set -ex \ && apt-get install -y --no-install-recommends \ build-essential \ cmake \ + doxygen \ curl \ git \ libspdlog-dev \ From 530bc37de369884235bd9c3304a28a37f12abe98 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 23 Jun 2026 10:45:48 +0200 Subject: [PATCH 56/65] test veloc tests after merge --- debuntu/mini/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 69a25da..b623232 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -143,7 +143,7 @@ WORKDIR ${HOME} 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/iole-bolognesi/pdi.git /root/pdi # stage : test From 6c279c1bb32f3db5cdc60121ab33831133cb0b1a Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 23 Jun 2026 13:22:12 +0200 Subject: [PATCH 57/65] run veloc tests in all variant too --- debuntu/all/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 7e27225..f104cb5 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -151,7 +151,7 @@ WORKDIR ${HOME} 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/iole-bolognesi/pdi.git /root/pdi # stage : test From 528a86fef74627befea04fca73216287b6ffb211 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 23 Jun 2026 14:19:54 +0200 Subject: [PATCH 58/65] remove curl and spdlog from packages being installed --- debuntu/mini/Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index b623232..8159e08 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -34,9 +34,7 @@ RUN set -ex \ build-essential \ cmake \ doxygen \ - curl \ git \ - libspdlog-dev \ libboost-dev \ libssl-dev \ gfortran \ From 38d6cb4a7fd6db516e49a9124ea576a24311d98f Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 30 Jun 2026 14:54:36 +0200 Subject: [PATCH 59/65] testing LLVM native linker rather than gold plugin --- .github/workflows/spack_docker_images.yml | 4 +++- spack/3-baselibs/Dockerfile | 22 ++++++++++------------ spack/3-baselibs/clang.lst | 2 +- spack/4-mini/Dockerfile | 10 +--------- 4 files changed, 15 insertions(+), 23 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index c792604..f44f948 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -111,7 +111,7 @@ jobs: echo "tags=ghcr.io/pdidev/spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" echo "fullspack=ghcr.io/pdidev/fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }}:${{github.ref_name}}" >> "${GITHUB_OUTPUT}" fi - - name: "Build and push" + - name: "Build and no push" uses: pdidev/test_env/.github/actions/build@v4 with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" @@ -119,6 +119,8 @@ jobs: path: spack/6-finalize image-name: spack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }} test: true + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" build-args: | VERSION=${{ matrix.version }} COMPILER=${{ matrix.compiler }} diff --git a/spack/3-baselibs/Dockerfile b/spack/3-baselibs/Dockerfile index 6fd17cb..d788d6a 100644 --- a/spack/3-baselibs/Dockerfile +++ b/spack/3-baselibs/Dockerfile @@ -39,16 +39,16 @@ ARG SPACK_INSTALL_ARGS="--show-log-on-error --fail-fast" COPY ${COMPILER}.lst compilerpkg.lst RUN < Date: Tue, 30 Jun 2026 15:00:47 +0200 Subject: [PATCH 60/65] disable pushing to registry --- .github/workflows/spack_docker_images.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index f44f948..faebfae 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -27,9 +27,13 @@ jobs: context: "./" path: spack/1-base image-name: base + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" cache: ${{ github.event_name != 'schedule' && ( github.event_name != 'workflow_dispatch' || inputs.cache ) }} # cache for every run but scheduled ones - name: "Build and push 2- spackbase" uses: pdidev/test_env/.github/actions/build@v4 + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" @@ -53,6 +57,8 @@ jobs: context: "./" path: spack/3-baselibs image-name: builder:${{ matrix.version }}-${{ matrix.compiler }}-baselibs + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" build-args: | VERSION=${{ matrix.version }} COMPILER=${{ matrix.compiler }} @@ -75,6 +81,8 @@ jobs: context: "./" path: spack/4-mini image-name: builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-mini + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" build-args: | VERSION=${{ matrix.version }} COMPILER=${{ matrix.compiler }} @@ -86,6 +94,8 @@ jobs: context: "./" path: spack/5-all image-name: builder:${{ matrix.version }}-${{ matrix.compiler }}-${{ matrix.mpi }}-all + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" build-args: | VERSION=${{ matrix.version }} COMPILER=${{ matrix.compiler }} @@ -136,6 +146,8 @@ jobs: path: spack/6-finalize image-name: fullspack/${{ matrix.version }}/${{ matrix.compiler }}/${{ matrix.mpi }}/${{ matrix.level }} target: fullspack + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" build-args: | VERSION=${{ matrix.version }} COMPILER=${{ matrix.compiler }} From 85203db205b91fd9dc59dae03b094d54b69f9785 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 30 Jun 2026 15:02:01 +0200 Subject: [PATCH 61/65] fix syntax indentation --- .github/workflows/spack_docker_images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index faebfae..b02de47 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -33,7 +33,7 @@ jobs: - name: "Build and push 2- spackbase" uses: pdidev/test_env/.github/actions/build@v4 push : "false" - cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" From 7d92df93795adc0fc1bef68ef2de5f4c8423d073 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Tue, 30 Jun 2026 15:04:55 +0200 Subject: [PATCH 62/65] fix syntax indentation error in spack workflow --- .github/workflows/spack_docker_images.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/spack_docker_images.yml b/.github/workflows/spack_docker_images.yml index b02de47..2890192 100644 --- a/.github/workflows/spack_docker_images.yml +++ b/.github/workflows/spack_docker_images.yml @@ -32,13 +32,13 @@ jobs: cache: ${{ github.event_name != 'schedule' && ( github.event_name != 'workflow_dispatch' || inputs.cache ) }} # cache for every run but scheduled ones - name: "Build and push 2- spackbase" uses: pdidev/test_env/.github/actions/build@v4 - push : "false" - cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" with: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" context: "./" path: spack/2-spackbase image-name: spackbase + push : "false" + cache-to: "type=registry,ref=ghcr.io/iole-bolognesi/test_env/cache/${{ matrix.base }}/${{ matrix.mpi }}/${{ matrix.variant }},mode=max" step_3_baselibs: strategy: fail-fast: false From e05c98f8d794b96dd4ffa7599332797ef5ed791d Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Mon, 20 Jul 2026 15:21:59 +0200 Subject: [PATCH 63/65] integrated in-person review comments : removed local install of mpich with shared mem support, include git in the temporary velocdl stage, remove use of pip to download tools needed to install veloc, install veloc in /opt/veloc --- .github/workflows/debuntu_docker_images.yml | 5 ++ debuntu/all/Dockerfile | 73 +++++++-------------- debuntu/mini/Dockerfile | 66 ++++++------------- 3 files changed, 49 insertions(+), 95 deletions(-) diff --git a/.github/workflows/debuntu_docker_images.yml b/.github/workflows/debuntu_docker_images.yml index 57b0db2..e35e268 100644 --- a/.github/workflows/debuntu_docker_images.yml +++ b/.github/workflows/debuntu_docker_images.yml @@ -14,6 +14,11 @@ jobs: base: ['ubuntu/jammy', 'ubuntu/rolling', 'debian/bookworm', 'debian/unstable'] mpi: ['openmpi', 'mpich'] variant: ['mini', 'all', 'pdi'] + # exclude debian/unstable + mpich as debian/unstable mpich package + # does not allow building with shared mem support needed by VeloC + exclude: + - { base: 'debian/unstable', mpi: mpich, variant : all} + - { base: 'debian/unstable', mpi: mpich, variant : mini} runs-on: ubuntu-latest steps: - name: Compute tags, distro & version diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index f104cb5..799d622 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -77,44 +77,27 @@ RUN set -ex \ FROM main AS velocdl -RUN if pip3 install --help | grep -q -- --break-system-packages; then \ - pip3 install --break-system-packages beautifulsoup4 wget; \ - else \ - pip3 install beautifulsoup4 wget; \ - fi - -WORKDIR /usr/veloc-src -RUN git clone https://github.com/ECP-VeloC/VELOC.git . \ - && mkdir -p /usr/local \ - && python3 auto-install.py /usr/local - -# stage : mpich download enabling options for shared memory support -# shared mem support is needed for VeloC -FROM main AS mpichdl -ARG MPI -ARG DISTRO -ARG DISTRO_VERSION - +# install tools needed by VeloC install script RUN set -ex \ - && if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ - apt-get update -y \ - && apt-get install -y --no-install-recommends dpkg-dev \ - && printf "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main\n" \ - > /etc/apt/sources.list.d/debian-src.sources \ - && apt-get update -y \ - && apt-get source mpich \ - && cd mpich-* \ - && ./configure \ - --prefix=/usr/local \ - --with-ch4-shmmods=posix \ - --with-device=ch4:ucx \ - --enable-shared \ - --disable-static \ - FC=gfortran \ - && make -j$(nproc) \ - && make install \ - && ldconfig; \ - fi + && apt-get update \ + && apt-get install -y --no-install-recommends \ + git \ + python3-wget \ + python3-bs4 \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /opt/src + +# Clone VeloC repository +RUN git clone -b 'veloc-1.8' --single-branch --depth 1 \ + https://github.com/ECP-VeloC/veloc.git veloc + +WORKDIR /opt/src/veloc + +# Run VeloC install script +RUN mkdir -p /opt/veloc \ + && ./auto-install.py /opt/veloc + # stage : complete image @@ -122,23 +105,15 @@ FROM main AS complete-main ARG DISTRO ARG DISTRO_VERSION ARG MPI -COPY --from=velocdl /usr/local /usr/local_veloc -COPY --from=mpichdl /usr/local /usr/local_mpich -RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ - cp -a /usr/local_mpich/. /usr/local/ \ - && rm -rf /usr/local_mpich; \ - else \ - rm -rf /usr/local_mpich; \ - fi -RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ - && ldconfig - -ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} +COPY --from=velocdl /opt/veloc /opt/veloc + +ENV CMAKE_PREFIX_PATH=/opt/veloc:${CMAKE_PREFIX_PATH} ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} ENV PDI_LIBS=provided +ENV LD_LIBRARY_PATH="/opt/veloc/lib" # only required for openmpi but... ENV OMPI_MCA_rmaps_base_oversubscribe=1 ENV PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 8159e08..08d831c 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -68,44 +68,26 @@ RUN set -ex \ FROM main AS velocdl -RUN if pip3 install --help | grep -q -- --break-system-packages; then \ - pip3 install --break-system-packages beautifulsoup4 wget; \ - else \ - pip3 install beautifulsoup4 wget; \ - fi +# install tools needed by VeloC install script +RUN set -ex \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + git \ + python3-wget \ + python3-bs4 \ + && rm -rf /var/lib/apt/lists/* -WORKDIR /usr/veloc-src -RUN git clone https://github.com/ECP-VeloC/VELOC.git . \ - && mkdir -p /usr/local \ - && python3 auto-install.py /usr/local +WORKDIR /opt/src -# stage : mpich download (with options for shared memory support) +# Clone VeloC repository +RUN git clone -b 'veloc-1.8' --single-branch --depth 1 \ + https://github.com/ECP-VeloC/veloc.git veloc -FROM main AS mpichdl -ARG MPI -ARG DISTRO -ARG DISTRO_VERSION +WORKDIR /opt/src/veloc -RUN set -ex \ - && if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ - apt-get update -y \ - && apt-get install -y --no-install-recommends dpkg-dev \ - && printf "Types: deb-src\nURIs: http://deb.debian.org/debian\nSuites: ${DISTRO_VERSION}\nComponents: main\n" \ - > /etc/apt/sources.list.d/debian-src.sources \ - && apt-get update -y \ - && apt-get source mpich \ - && cd mpich-* \ - && ./configure \ - --prefix=/usr/local \ - --with-ch4-shmmods=posix \ - --with-device=ch4:ucx \ - --enable-shared \ - --disable-static \ - FC=gfortran \ - && make -j$(nproc) \ - && make install \ - && ldconfig; \ - fi +# Run VeloC install script +RUN mkdir -p /opt/veloc \ + && ./auto-install.py /opt/veloc # stage : complete image @@ -113,22 +95,14 @@ FROM main AS complete-main ARG DISTRO ARG DISTRO_VERSION ARG MPI -COPY --from=velocdl /usr/local /usr/local_veloc -COPY --from=mpichdl /usr/local /usr/local_mpich -RUN if [ "${MPI}" = "mpich" ] && [ "${DISTRO}" = "debian" ] && [ "${DISTRO_VERSION}" = "unstable" ]; then \ - cp -a /usr/local_mpich/. /usr/local/ \ - && rm -rf /usr/local_mpich; \ - else \ - rm -rf /usr/local_mpich; \ - fi -RUN printf "/usr/local_veloc/lib" > /etc/ld.so.conf.d/veloc.conf \ - && ldconfig - -ENV CMAKE_PREFIX_PATH=/usr/local_veloc:${CMAKE_PREFIX_PATH} +COPY --from=velocdl /opt/veloc /opt/veloc + +ENV CMAKE_PREFIX_PATH=/opt/veloc:${CMAKE_PREFIX_PATH} ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION} ENV PDI_COMPILER=gcc ENV PDI_MPI=${MPI} +ENV LD_LIBRARY_PATH="/opt/veloc/lib" # only required for openmpi but... ENV OMPI_MCA_rmaps_base_oversubscribe=1 ENV PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe From cc118c5cbae778b907c3714de2e1c6e3ffa6c33c Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Mon, 27 Jul 2026 10:54:58 +0200 Subject: [PATCH 64/65] remove git and libssl from main image stage --- debuntu/all/Dockerfile | 3 --- debuntu/mini/Dockerfile | 3 --- 2 files changed, 6 deletions(-) diff --git a/debuntu/all/Dockerfile b/debuntu/all/Dockerfile index 799d622..3274c4a 100644 --- a/debuntu/all/Dockerfile +++ b/debuntu/all/Dockerfile @@ -30,7 +30,6 @@ RUN set -ex \ && apt-get update -y \ && apt-get upgrade -y \ && apt-get install -y --no-install-recommends \ - git \ apt-transport-https \ ca-certificates \ curl \ @@ -41,8 +40,6 @@ RUN set -ex \ && apt-get install -y --no-install-recommends \ build-essential \ cmake \ - libboost-dev \ - libssl-dev \ doxygen \ gfortran \ libhdf5-${MPI}-dev \ diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index 08d831c..cffbd2d 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -34,9 +34,6 @@ RUN set -ex \ build-essential \ cmake \ doxygen \ - git \ - libboost-dev \ - libssl-dev \ gfortran \ libcurl4-openssl-dev \ lib${MPI}-dev \ From 8f015ad66f1dbaebe6ee3828981050043149de47 Mon Sep 17 00:00:00 2001 From: Iole Bolognesi Date: Mon, 27 Jul 2026 14:05:14 +0200 Subject: [PATCH 65/65] install libssl-dev in mini image as it is not pulled transitively by libcurl4-openssl-dev in some distributions like jammy --- debuntu/mini/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/debuntu/mini/Dockerfile b/debuntu/mini/Dockerfile index cffbd2d..6b0533a 100644 --- a/debuntu/mini/Dockerfile +++ b/debuntu/mini/Dockerfile @@ -34,6 +34,7 @@ RUN set -ex \ build-essential \ cmake \ doxygen \ + libssl-dev \ gfortran \ libcurl4-openssl-dev \ lib${MPI}-dev \