Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
c8b1812
added veloc to deps.sh
iole-bolognesi Apr 23, 2026
b7a5461
changing tags to push images to forked repo
iole-bolognesi Apr 23, 2026
79e5bf8
changed action to use in spack_docker_images workflow to point at my …
iole-bolognesi Apr 23, 2026
f701a6e
changed pdi_test references I had forgotten
iole-bolognesi Apr 23, 2026
7098954
Added the name of the registry as a build argument
iole-bolognesi Apr 23, 2026
25024fd
Update debuntu images to include VeloC and its dependencies
iole-bolognesi May 4, 2026
272a6c6
changed placement of git and linnoost, libssl
iole-bolognesi May 6, 2026
07d9885
changes to workflow to push to my forks' packages
iole-bolognesi May 6, 2026
2f2b978
fix spdlog-doxygen incompatibility in ubuntu/rolling mini
iole-bolognesi May 7, 2026
a09ca7b
try build doxygen from prebuilt github binary releases to fix compat…
iole-bolognesi May 7, 2026
29f78cb
try install doxygen with curl instead
iole-bolognesi May 7, 2026
92d1ef7
exclude building on debian/unstable due to mpich issue #7814
iole-bolognesi May 22, 2026
95bb78f
build mpich with shared memory support
iole-bolognesi May 27, 2026
87b1ae5
change to copy the mpich install only when MPI = mpich
iole-bolognesi May 27, 2026
9dd7137
install mpich from source only for debian/unstable and mpich images
iole-bolognesi May 27, 2026
09bdb9c
fixed missing line continuation
iole-bolognesi May 27, 2026
eb099ae
using printf instead of echo
iole-bolognesi May 27, 2026
81c2d28
remove matrix to avoid crash in gcc baselibs dockerfile
iole-bolognesi Jun 4, 2026
8c10e2e
select ~bootstrap variant only for gcc, not for clang compiler
iole-bolognesi Jun 4, 2026
7c89b20
use toolchain only for spack version > 1
iole-bolognesi Jun 4, 2026
1244993
make clang link with lld
iole-bolognesi Jun 5, 2026
7820ea4
apply change conditionally for newest spack version
iole-bolognesi Jun 5, 2026
8c3e6fb
disabling LTO lfor doxygen only
iole-bolognesi Jun 5, 2026
52075e2
fix syntax
iole-bolognesi Jun 5, 2026
c4bc37c
re-add deleted "fi"
iole-bolognesi Jun 5, 2026
d334c00
try to diasble LTO as a spec
iole-bolognesi Jun 5, 2026
f4e9410
remove double include of doxygen
iole-bolognesi Jun 5, 2026
56194a5
selecting spack llvm variant with gold plugin support
iole-bolognesi Jun 8, 2026
a106b7b
re-instert mpi and mpilibs in pdienv
iole-bolognesi Jun 8, 2026
d5eb7b3
workaround to gcc 16 and openmpi inline issue
iole-bolognesi Jun 9, 2026
79398fe
debug message
iole-bolognesi Jun 9, 2026
ae46ecd
put COMPILER into scope
iole-bolognesi Jun 9, 2026
b2c9ede
changed registry for final stage and refactored
iole-bolognesi Jun 9, 2026
e775403
run veoc tests
iole-bolognesi Jun 9, 2026
8198186
disable veloc tests in image with veloc 1.5 as plugin requires versio…
iole-bolognesi Jun 10, 2026
59502d0
disable the building of the plugin, not just the tests execution
iole-bolognesi Jun 10, 2026
be4e7a2
change veloc install in debuntu images to use install script
iole-bolognesi Jun 10, 2026
9764737
install different versions of bs4 and wget
iole-bolognesi Jun 10, 2026
2423d30
include git in mini image
iole-bolognesi Jun 10, 2026
447d4f6
cleanup PR -- replace my fork with pdidev
iole-bolognesi Jun 10, 2026
c5a08e3
add newline removed by mistake
iole-bolognesi Jun 10, 2026
ecb8bf5
remove registry entry
iole-bolognesi Jun 11, 2026
5af0649
sync with upstream repo and remove env variable declaration
iole-bolognesi Jun 11, 2026
e14e8a1
sync with upstream repo
iole-bolognesi Jun 11, 2026
cea55b4
readd env vriables
iole-bolognesi Jun 11, 2026
3a285a5
removing PATH env variable
iole-bolognesi Jun 11, 2026
fd36dce
reloving cmake_prefix_path env
iole-bolognesi Jun 11, 2026
d945962
running veloc tests
iole-bolognesi Jun 11, 2026
11b1150
changing wrong git repo link
iole-bolognesi Jun 11, 2026
7c7dccd
re-add cmake_prefix_path
iole-bolognesi Jun 11, 2026
e3bd1bc
cleanup code for PR
iole-bolognesi Jun 11, 2026
12a702e
adding newline
iole-bolognesi Jun 11, 2026
569613f
remove empty line
iole-bolognesi Jun 11, 2026
fd2179b
Merge remote-tracking branch 'upstream/v4' into v4
iole-bolognesi Jun 23, 2026
a322ea6
test doxygen in mini variant after merge
iole-bolognesi Jun 23, 2026
6ca461c
re-add doxygen in mini Dockerfile
iole-bolognesi Jun 23, 2026
530bc37
test veloc tests after merge
iole-bolognesi Jun 23, 2026
6c279c1
run veloc tests in all variant too
iole-bolognesi Jun 23, 2026
528a86f
remove curl and spdlog from packages being installed
iole-bolognesi Jun 23, 2026
38d6cb4
testing LLVM native linker rather than gold plugin
iole-bolognesi Jun 30, 2026
7e02049
disable pushing to registry
iole-bolognesi Jun 30, 2026
85203db
fix syntax indentation
iole-bolognesi Jun 30, 2026
7d92df9
fix syntax indentation error in spack workflow
iole-bolognesi Jun 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,4 @@ runs:
sudo swapoff /swapfile || true
sudo rm -f /swapfile || true
fi

4 changes: 3 additions & 1 deletion .github/workflows/debuntu_docker_images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,16 @@ 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 }}"
context: "./"
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"
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 }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_clang_format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}
18 changes: 16 additions & 2 deletions .github/workflows/spack_docker_images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ 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
Expand All @@ -35,6 +37,8 @@ jobs:
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
Expand All @@ -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 }}
Expand All @@ -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 }}
Expand All @@ -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 }}
Expand All @@ -111,14 +121,16 @@ 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 }}"
context: "./"
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 }}
Expand All @@ -134,10 +146,12 @@ 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 }}
MPI=${{ matrix.mpi }}
LIBS=${{ matrix.level }}
tags: |
${{ steps.info.outputs.fullspack }}
${{ steps.info.outputs.fullspack }}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
77 changes: 70 additions & 7 deletions debuntu/all/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ 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 \
Expand All @@ -40,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 \
Expand Down Expand Up @@ -70,6 +73,68 @@ 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 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

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

# stage : complete image

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}

ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION}
ENV PDI_COMPILER=gcc
ENV PDI_MPI=${MPI}
Expand All @@ -82,21 +147,19 @@ ENV HOME=/home/ci
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

RUN git -C /root clone --recurse-submodules https://github.com/iole-bolognesi/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

RUN export VERBOSE=1 \
&& bash pdi/bin/build_and_run_all_tests



FROM main
FROM complete-main
77 changes: 70 additions & 7 deletions debuntu/mini/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ RUN set -ex \
build-essential \
cmake \
doxygen \
git \
libboost-dev \
libssl-dev \
gfortran \
libcurl4-openssl-dev \
lib${MPI}-dev \
Expand Down Expand Up @@ -61,6 +64,68 @@ 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 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 (with options for shared memory support)

FROM main AS mpichdl
ARG MPI
ARG DISTRO
ARG DISTRO_VERSION

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

# stage : complete image

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}

ENV PDI_SYSTEM=${DISTRO}-${DISTRO_VERSION}
ENV PDI_COMPILER=gcc
ENV PDI_MPI=${MPI}
Expand All @@ -72,21 +137,19 @@ ENV HOME=/home/ci
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

RUN git -C /root clone --recurse-submodules https://github.com/iole-bolognesi/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

RUN export VERBOSE=1 \
&& bash pdi/bin/build_and_run_all_tests



FROM main
FROM complete-main
3 changes: 2 additions & 1 deletion spack/2-spackbase/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"

Expand Down
Loading
Loading