From ca6b8f8fc6ae550cf153070cf7fb02eccb88f2df Mon Sep 17 00:00:00 2001 From: Matthias Krack Date: Sat, 24 Jan 2026 17:10:36 +0100 Subject: [PATCH] Add two testers for make_cp2k.sh build script --- make_cp2k.sh | 2 +- tools/dashboard/dashboard.conf | 16 ++++++++ tools/docker/Dockerfile.make_cp2k_psmp | 45 +++++++++++++++++++++ tools/docker/Dockerfile.make_cp2k_ssmp | 45 +++++++++++++++++++++ tools/docker/cp2k-ci.conf | 16 ++++++++ tools/docker/generate_dockerfiles.py | 55 +++++++++++++++++++++++++- 6 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 tools/docker/Dockerfile.make_cp2k_psmp create mode 100644 tools/docker/Dockerfile.make_cp2k_ssmp diff --git a/make_cp2k.sh b/make_cp2k.sh index 58ab4a99e3..c763b5f1f3 100755 --- a/make_cp2k.sh +++ b/make_cp2k.sh @@ -555,7 +555,7 @@ fi # Retrieve paths to "hidden" libraries LD_LIBRARY_PATH="${INSTALL_PREFIX}/lib:${LD_LIBRARY_PATH}" -echo -e "\nLD_LIBRARY_PATH = \"${LD_LIBRARY_PATH}\"\n" +echo -e "\nLD_LIBRARY_PATH = \"${LD_LIBRARY_PATH}\"" if ldd "${INSTALL_PREFIX}/bin/cp2k.${CP2K_VERSION}" | grep -q "not found"; then echo -e "\n*** Some libraries referenced by the CP2K binary are NOT found:" ldd "${INSTALL_PREFIX}/bin/cp2k.${CP2K_VERSION}" | grep "not found" diff --git a/tools/dashboard/dashboard.conf b/tools/dashboard/dashboard.conf index 6e9d9b680c..bcfc9004eb 100644 --- a/tools/dashboard/dashboard.conf +++ b/tools/dashboard/dashboard.conf @@ -318,4 +318,20 @@ timeout: 170 host: GCP report_url: https://storage.googleapis.com/cp2k-ci/dashboard_asan-psmp_report.txt +# ============================================================================== + +[make-cp2k-psmp] +sortkey: 2000 +name: make_cp2k (psmp) +timeout: 170 +host: GCP +report_url: https://storage.googleapis.com/cp2k-ci/dashboard_make-cp2k-psmp_report.txt + +[make-cp2k-ssmp] +sortkey: 2010 +name: make_cp2k (ssmp) +timeout: 170 +host: GCP +report_url: https://storage.googleapis.com/cp2k-ci/dashboard_make-cp2k-ssmp_report.txt + #EOF diff --git a/tools/docker/Dockerfile.make_cp2k_psmp b/tools/docker/Dockerfile.make_cp2k_psmp new file mode 100644 index 0000000000..83a1420c72 --- /dev/null +++ b/tools/docker/Dockerfile.make_cp2k_psmp @@ -0,0 +1,45 @@ +# +# This file was created by generate_dockerfiles.py. +# Usage: ./spack_cache_start.sh; podman build --network=host --shm-size=1g -f ./Dockerfile.make_cp2k_psmp ../../ +# + +FROM "ubuntu:24.04" + +RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ + bzip2 \ + ca-certificates \ + cmake \ + g++ \ + gcc \ + gfortran \ + git \ + gnupg \ + hwloc \ + libhwloc-dev \ + libssh-dev \ + libssl-dev \ + libtool \ + libtool-bin \ + lsb-release \ + make \ + ninja-build \ + patch \ + pkgconf \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + unzip \ + wget \ + xxd \ + xz-utils \ + zstd \ + && rm -rf /var/lib/apt/lists/* + +ARG SPACK_CACHE="s3://spack-cache --s3-endpoint-url=http://localhost:9000" + +WORKDIR /opt +COPY . cp2k/ + +WORKDIR /opt/cp2k +RUN ./make_cp2k.sh -cv psmp -t "" diff --git a/tools/docker/Dockerfile.make_cp2k_ssmp b/tools/docker/Dockerfile.make_cp2k_ssmp new file mode 100644 index 0000000000..928f632d44 --- /dev/null +++ b/tools/docker/Dockerfile.make_cp2k_ssmp @@ -0,0 +1,45 @@ +# +# This file was created by generate_dockerfiles.py. +# Usage: ./spack_cache_start.sh; podman build --network=host --shm-size=1g -f ./Dockerfile.make_cp2k_ssmp ../../ +# + +FROM "ubuntu:24.04" + +RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ + bzip2 \ + ca-certificates \ + cmake \ + g++ \ + gcc \ + gfortran \ + git \ + gnupg \ + hwloc \ + libhwloc-dev \ + libssh-dev \ + libssl-dev \ + libtool \ + libtool-bin \ + lsb-release \ + make \ + ninja-build \ + patch \ + pkgconf \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + unzip \ + wget \ + xxd \ + xz-utils \ + zstd \ + && rm -rf /var/lib/apt/lists/* + +ARG SPACK_CACHE="s3://spack-cache --s3-endpoint-url=http://localhost:9000" + +WORKDIR /opt +COPY . cp2k/ + +WORKDIR /opt/cp2k +RUN ./make_cp2k.sh -cv ssmp -t "" diff --git a/tools/docker/cp2k-ci.conf b/tools/docker/cp2k-ci.conf index 07a053582b..1ceaf13591 100644 --- a/tools/docker/cp2k-ci.conf +++ b/tools/docker/cp2k-ci.conf @@ -98,6 +98,22 @@ nodepools: pool-main build_path: / dockerfile: /tools/docker/Dockerfile.test_spack_openmpi-psmp +[make-cp2k-psmp] +display_name: make_cp2k (psmp) +tags: daily +cpu: 32 +nodepools: pool-main +build_path: / +dockerfile: /tools/docker/Dockerfile.make_cp2k_psmp + +[make-cp2k-ssmp] +display_name: make_cp2k (ssmp) +tags: daily +cpu: 32 +nodepools: pool-main +build_path: / +dockerfile: /tools/docker/Dockerfile.make_cp2k_ssmp + [conventions] display_name: Conventions tags: daily diff --git a/tools/docker/generate_dockerfiles.py b/tools/docker/generate_dockerfiles.py index 262f3b0422..d8bce9c8c3 100755 --- a/tools/docker/generate_dockerfiles.py +++ b/tools/docker/generate_dockerfiles.py @@ -53,6 +53,12 @@ def main() -> None: f.write(install_deps_ubuntu()) f.write(regtest("minimal", "ssmp")) + with OutputFile(f"Dockerfile.make_cp2k_psmp", args.check) as f: + f.write(install_make_cp2k("psmp", mpi_mode="mpich")) + + with OutputFile(f"Dockerfile.make_cp2k_ssmp", args.check) as f: + f.write(install_make_cp2k("ssmp", mpi_mode="mpich")) + with OutputFile(f"Dockerfile.test_spack_psmp", args.check) as f: f.write(install_deps_spack("psmp", mpi_mode="mpich")) f.write(regtest("spack", "psmp")) @@ -659,6 +665,53 @@ RUN make -j${{NUM_PROCS}} --file=spack_makefile SPACK_COLOR=never --output-sync= return output +# ====================================================================================== +def install_make_cp2k(version: str, mpi_mode: str) -> str: + output = rf""" +FROM "ubuntu:24.04" + +RUN apt-get update -qq && apt-get install -qq --no-install-recommends \ + bzip2 \ + ca-certificates \ + cmake \ + g++ \ + gcc \ + gfortran \ + git \ + gnupg \ + hwloc \ + libhwloc-dev \ + libssh-dev \ + libssl-dev \ + libtool \ + libtool-bin \ + lsb-release \ + make \ + ninja-build \ + patch \ + pkgconf \ + python3 \ + python3-dev \ + python3-pip \ + python3-venv \ + unzip \ + wget \ + xxd \ + xz-utils \ + zstd \ + && rm -rf /var/lib/apt/lists/* + +ARG SPACK_CACHE="s3://spack-cache --s3-endpoint-url=http://localhost:9000" + +WORKDIR /opt +COPY . cp2k/ + +WORKDIR /opt/cp2k +RUN ./make_cp2k.sh -cv {version} -t "" +""" + return output + + # ====================================================================================== class OutputFile: def __init__(self, filename: str, check: bool) -> None: @@ -667,7 +720,7 @@ class OutputFile: self.content = io.StringIO() self.content.write(f"#\n") self.content.write(f"# This file was created by generate_dockerfiles.py.\n") - if "_spack_" in filename: + if "_spack_" in filename or "make_cp2k_" in filename: usage = f"./spack_cache_start.sh; podman build --network=host --shm-size=1g -f ./{filename} ../../" else: usage = f"podman build --shm-size=1g -f ./{filename} ../../"