Skip to content

incremental CI image updates#349

Open
rrsettgast wants to merge 28 commits intomasterfrom
codex/restart-tpl-images
Open

incremental CI image updates#349
rrsettgast wants to merge 28 commits intomasterfrom
codex/restart-tpl-images

Conversation

@rrsettgast
Copy link
Copy Markdown
Member

No description provided.

@rrsettgast rrsettgast self-assigned this Apr 29, 2026
@rrsettgast rrsettgast requested review from Copilot and victorapm May 5, 2026 00:41
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the TPL Docker/CI build flow to use newer “base toolchain” images and a new Ubuntu-focused Spack environment, enabling more incremental/targeted CI image refreshes while expanding supported toolchains/architectures.

Changes:

  • Refactors Docker TPL builds to layer on top of geosx/<os>:<tag>-<sha> base images and updates the CI workflow matrix accordingly.
  • Introduces a new docker/ubuntu-spack.yaml environment and updates multiple Dockerfiles/scripts to consume it.
  • Improves CUDA architecture handling in generated host-configs to support multiple cuda_arch values.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
scripts/spack_packages/packages/geosx/package.py Updates CUDA flag/architecture emission to support multiple CUDA SM targets.
scripts/setupLC-TPL-uberenv.bash Adds new hypredrive build rows for select LC systems and updates some specs.
scripts/docker-build.sh Switches docker build inputs to DOCKER_BASE_IMAGE and forwards optional compiler version build args.
docker/ubuntu20-clang-cuda-spack.yaml Marks llvm/gcc as non-buildable externals in the Ubuntu20 clang/cuda Spack env.
docker/ubuntu-spack.yaml Adds a new Ubuntu-oriented Spack environment with modern toolchains and externals.
docker/tpl-ubuntu.Dockerfile Adds a new generic Ubuntu TPL Dockerfile that layers on DOCKER_BASE_IMAGE images.
docker/tpl-ubuntu-gcc.Dockerfile Switches the Spack env file reference to docker/ubuntu-spack.yaml.
docker/tpl-ubuntu-clang.Dockerfile Switches the Spack env file reference to docker/ubuntu-spack.yaml.
docker/tpl-rockylinux.Dockerfile Adds a new generic Rocky Linux TPL Dockerfile that layers on DOCKER_BASE_IMAGE images.
docker/tpl-rockylinux-gcc-cuda-12.Dockerfile Makes clingo installation more robust by ensuring pip is available first.
docker/tpl-rockylinux-clang-cuda-12.Dockerfile Makes clingo installation more robust by ensuring pip is available first.
docker/tpl-centos-gcc-cuda.Dockerfile Updates the Spack env file reference used by the legacy CentOS CUDA Dockerfile.
docker/rocky-spack.yaml Expands toolchain definitions/externals and pins compilers as non-buildable for Rocky images.
docker/spack.yaml Removes the previous shared Spack environment file.
.github/workflows/docker_build_tpls.yml Reworks the CI matrix to use base images + new Dockerfiles, and updates GitHub Actions versions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +101 to +104
"${UBERENV_HELPER}" "$INSTALL_DIR" matrix gcc-12-cuda-12.6 "+cuda ~uncrustify cuda_arch=90 %%gcc-12 ^cuda@12.6.0+allow-unsupported-compilers ${COMMON}" "${ALLOC_CMD}" "$@" &
"${UBERENV_HELPER}" "$INSTALL_DIR" matrix gcc-13-cuda-12.9 "+cuda ~uncrustify cuda_arch=90 %%gcc-13 ^cuda@12.9.1+allow-unsupported-compilers ${COMMON}" "${ALLOC_CMD}" "$@" &
"${UBERENV_HELPER}" "$INSTALL_DIR" matrix gcc-13-cuda-12.9-hypredrive "+cuda ~uncrustify +hyperdrive cuda_arch=90 %%gcc-13 ^cuda@12.9.1+allow-unsupported-compilers ${COMMON}" "${ALLOC_CMD}" "$@" &
"${UBERENV_HELPER}" "$INSTALL_DIR" matrix llvm-14-cuda-12.6 "+cuda ~uncrustify cuda_arch=90 %%clang-14 ^cuda@12.6.0+allow-unsupported-compilers ${COMMON}" "${ALLOC_CMD}" "$@" &
Comment thread scripts/setupLC-TPL-uberenv.bash Outdated
ALLOC_CMD="salloc -N 1 --exclusive -p pdebug -t 60 -A vortex"
"${UBERENV_HELPER}" "$INSTALL_DIR" tuolumne cce-20-rocm-6.4.3 "+rocm~pygeosx~trilinos~petsc~docs amdgpu_target=gfx942 %%cce-20 ${COMMON}" "${ALLOC_CMD}" "$@" &
"${UBERENV_HELPER}" "$INSTALL_DIR" tuolumne llvm-amdgpu-6.4.3 "+rocm~pygeosx~trilinos~petsc~docs amdgpu_target=gfx942 %%llvm-amdgpu_6_4_3 ${COMMON}" "${ALLOC_CMD}" "$@" &
"${UBERENV_HELPER}" "$INSTALL_DIR" tuolumne llvm-amdgpu-6.4.3-hypredrive "+rocm~pygeosx~trilinos~petsc~docs+hyperdrive amdgpu_target=gfx942 %%llvm-amdgpu_6_4_3 ${COMMON}" "${ALLOC_CMD}" "$@" &
Comment thread docker/tpl-centos-gcc-cuda.Dockerfile Outdated
./scripts/uberenv/uberenv.py \
--spec "%gcc@8+cuda~uncrustify~openmp~pygeosx cuda_arch=86 ^cuda@11.8.0+allow-unsupported-compilers ^caliper~gotcha~sampler~libunwind~libdw~papi" \
--spack-env-file=${SRC_DIR}/docker/spack.yaml \
--spack-env-file=${SRC_DIR}/docker/ubuntu-spack.yaml \
Comment thread scripts/docker-build.sh
Comment on lines +29 to +36
# on `[ -z "${ARG}" ]` checks.
EXTRA_BUILD_ARGS=()
if [ -n "${GCC_VERSION}" ]; then EXTRA_BUILD_ARGS+=(--build-arg "GCC_VERSION=${GCC_VERSION}"); fi
if [ -n "${CLANG_VERSION}" ]; then EXTRA_BUILD_ARGS+=(--build-arg "CLANG_VERSION=${CLANG_VERSION}"); fi

docker build --progress=plain \
--build-arg HOST_CONFIG=${HOST_CONFIG} \
--build-arg DOCKER_BASE_IMAGE=${DOCKER_BASE_IMAGE} \
Comment thread docker/tpl-ubuntu-gcc.Dockerfile Outdated
Comment on lines 115 to 119
if [ -z "${GEOSX_SPEC}" ] || [ "${GEOSX_SPEC}" = "undefined" ]; then GEOSX_SPEC="~pygeosx +docs %gcc-${GCC_MAJOR_VERSION}"; fi && \
./scripts/uberenv/uberenv.py \
--spec "${GEOSX_SPEC}" \
--spack-env-file=${SRC_DIR}/docker/spack.yaml \
--spack-env-file=${SRC_DIR}/docker/ubuntu-spack.yaml \
--project-json=${SRC_DIR}/.uberenv_config.json \
Comment thread docker/tpl-ubuntu-clang.Dockerfile Outdated
./scripts/uberenv/uberenv.py \
--spec "${GEOSX_SPEC}" \
--spack-env-file=${SRC_DIR}/docker/spack.yaml \
--spack-env-file=${SRC_DIR}/docker/ubuntu-spack.yaml \
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants