Skip to content

add adios2. hypredrive on by default. #1028

add adios2. hypredrive on by default.

add adios2. hypredrive on by default. #1028

name: Docker Build TPLs
on: pull_request
# Cancels in-progress workflows for a PR when updated
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# TPL images build on top of the base images produced by
# https://github.com/GEOS-DEV/docker_base_images.
env:
DOCKER_BASE_IMAGE_SHA: 1c3c049b3f629d9d44838656fd306b2a0c04c9e8
jobs:
build_images:
name: ${{ matrix.name }}
runs-on: ${{ matrix.RUNS_ON }}
strategy:
# In-progress jobs will not be cancelled if there is a failure
fail-fast: false
matrix:
include:
# Minimal restart slice: only known-good Ubuntu host builds.
- name: Ubuntu 24.04 - gcc 12
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
DOCKER_BASE_IMAGE_TAG: 24.04-gcc12
DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
DOCKER_REPOSITORY: geosx/ubuntu24.04-gcc12
GCC_VERSION: 12
SPEC: "~pygeosx ~docs %gcc-12"
- name: Ubuntu 24.04 - gcc 13 (docs)
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
DOCKER_BASE_IMAGE_TAG: 24.04-gcc13
DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
DOCKER_REPOSITORY: geosx/ubuntu24.04-gcc13
GCC_VERSION: 13
SPEC: "~pygeosx +docs %gcc-13"
- name: Ubuntu 24.04 - clang 19
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
DOCKER_BASE_IMAGE_TAG: 24.04-clang19
DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
DOCKER_REPOSITORY: geosx/ubuntu24.04-clang19
CLANG_VERSION: 19
SPEC: "~pygeosx ~docs %clang-19"
- name: Ubuntu 24.04 - clang 20
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
DOCKER_BASE_IMAGE_TAG: 24.04-clang20
DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
DOCKER_REPOSITORY: geosx/ubuntu24.04-clang20
CLANG_VERSION: 20
SPEC: "~pygeosx ~docs %clang-20"
# First Rocky non-CUDA row re-enabled for incremental validation.
- name: Rocky Linux 8 - gcc 12
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-rockylinux.Dockerfile
DOCKER_BASE_IMAGE_TAG: 8-gcc12
DOCKER_BASE_IMAGE_REPO: geosx/rockylinux
DOCKER_REPOSITORY: geosx/rockylinux8-gcc12
SPEC: "~pygeosx ~docs %gcc-12"
- name: Rocky Linux 8 - gcc 13
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-rockylinux.Dockerfile
DOCKER_BASE_IMAGE_TAG: 8-gcc13
DOCKER_BASE_IMAGE_REPO: geosx/rockylinux
DOCKER_REPOSITORY: geosx/rockylinux8-gcc13
SPEC: "~pygeosx ~docs %gcc-13"
- name: Rocky Linux 8 - clang 19
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-rockylinux.Dockerfile
DOCKER_BASE_IMAGE_TAG: 8-clang19
DOCKER_BASE_IMAGE_REPO: geosx/rockylinux
DOCKER_REPOSITORY: geosx/rockylinux8-clang19
SPEC: "~pygeosx ~docs %clang-19"
- name: Rocky Linux 9 - clang 22
RUNS_ON: ubuntu-latest
TPL_DOCKERFILE: docker/tpl-rockylinux.Dockerfile
DOCKER_BASE_IMAGE_TAG: 9-clang22
DOCKER_BASE_IMAGE_REPO: geosx/rockylinux
DOCKER_REPOSITORY: geosx/rockylinux9-clang22
SPEC: "~pygeosx ~docs %clang-22"
# CUDA restart slice.
- name: Ubuntu 24.04 - gcc 13 + CUDA 12.9.1
RUNS_ON: streak2
TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
DOCKER_BASE_IMAGE_TAG: 24.04-gcc13-cuda12.9.1
DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
DOCKER_REPOSITORY: geosx/ubuntu24.04-gcc13-cuda12.9.1
GCC_VERSION: 13
SPEC: "+cuda cuda_arch=86,120 ~openmp ~pygeosx ~docs %gcc-13 ^cuda@12.9.1+allow-unsupported-compilers"
# CUDA 13 is blocked by the pinned RAJA package:
# raja: '^cuda@13:' conflicts with '+cuda'
# - name: Ubuntu 24.04 - gcc 14 + CUDA 13.2.1
# RUNS_ON: streak2
# TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
# DOCKER_BASE_IMAGE_TAG: 24.04-gcc14-cuda13.2.1
# DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
# DOCKER_REPOSITORY: geosx/ubuntu24.04-gcc14-cuda13.2.1
# GCC_VERSION: 14
# SPEC: "+cuda cuda_arch=86,120 ~openmp ~pygeosx ~docs %gcc-14 ^cuda@13.2.1+allow-unsupported-compilers"
- name: Ubuntu 24.04 - clang 19 + CUDA 12.9.1
RUNS_ON: streak2
TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
DOCKER_BASE_IMAGE_TAG: 24.04-clang19-cuda12.9.1
DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
DOCKER_REPOSITORY: geosx/ubuntu24.04-clang19-cuda12.9.1
CLANG_VERSION: 19
SPEC: "+cuda cuda_arch=86,120 ~openmp ~pygeosx ~docs %clang-19 ^cuda@12.9.1+allow-unsupported-compilers"
# - name: Ubuntu 24.04 - clang 20 + CUDA 13.2.1
# RUNS_ON: streak2
# TPL_DOCKERFILE: docker/tpl-ubuntu.Dockerfile
# DOCKER_BASE_IMAGE_TAG: 24.04-clang20-cuda13.2.1
# DOCKER_BASE_IMAGE_REPO: geosx/ubuntu
# DOCKER_REPOSITORY: geosx/ubuntu24.04-clang20-cuda13.2.1
# CLANG_VERSION: 20
# SPEC: "+cuda cuda_arch=86,120 ~openmp ~pygeosx ~docs %clang-20 ^cuda@13.2.1+allow-unsupported-compilers"
- name: Rocky Linux 8 - gcc 13 + CUDA 12.9.1
RUNS_ON: streak2
TPL_DOCKERFILE: docker/tpl-rockylinux.Dockerfile
DOCKER_BASE_IMAGE_TAG: 8-gcc13-cuda12.9.1
DOCKER_BASE_IMAGE_REPO: geosx/rockylinux
DOCKER_REPOSITORY: geosx/rockylinux8-gcc13-cuda12.9.1
SPEC: "+cuda cuda_arch=86,120 ~openmp ~pygeosx ~docs %gcc-13 ^cuda@12.9.1+allow-unsupported-compilers"
# Rocky8 clang19 CUDA 12.9.1 is blocked by SuperLU_DIST using
# C++11 with CUDA 12.9 + clang19 + GCC 14 libstdc++.
# - name: Rocky Linux 8 - clang 19 + CUDA 12.9.1
# RUNS_ON: streak2
# TPL_DOCKERFILE: docker/tpl-rockylinux.Dockerfile
# DOCKER_BASE_IMAGE_TAG: 8-clang19-cuda12.9.1
# DOCKER_BASE_IMAGE_REPO: geosx/rockylinux
# DOCKER_REPOSITORY: geosx/rockylinux8-clang19-cuda12.9.1
# SPEC: "+cuda cuda_arch=86,120 ~openmp ~pygeosx ~docs %clang-19 ^cuda@12.9.1+allow-unsupported-compilers"
# - name: Rocky Linux 9 - gcc 15 + CUDA 13.2.1
# RUNS_ON: streak2
# TPL_DOCKERFILE: docker/tpl-rockylinux.Dockerfile
# DOCKER_BASE_IMAGE_TAG: 9-gcc15-cuda13.2.1
# DOCKER_BASE_IMAGE_REPO: geosx/rockylinux
# DOCKER_REPOSITORY: geosx/rockylinux9-gcc15-cuda13.2.1
# SPEC: "+cuda cuda_arch=86,120 ~openmp ~pygeosx ~docs %gcc-15 ^cuda@13.2.1+allow-unsupported-compilers"
steps:
- name: Checkout
uses: actions/checkout@v6
with:
submodules: true
lfs: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Print environment
run: printenv
- name: Compose DOCKER_BASE_IMAGE
id: base
run: |
echo "DOCKER_BASE_IMAGE=${{ matrix.DOCKER_BASE_IMAGE_REPO }}:${{ matrix.DOCKER_BASE_IMAGE_TAG }}-${DOCKER_BASE_IMAGE_SHA}" >> "$GITHUB_OUTPUT"
- name: Inject CA certificate into Docker build
if: matrix.RUNS_ON == 'streak2'
run: |
cp /etc/pki/tls/certs/ca-bundle.crt ./ca-bundle.crt
sed -i '/RUN dnf clean all/i COPY ca-bundle.crt /etc/pki/ca-trust/source/anchors/ca-bundle.crt\nRUN update-ca-trust extract' ${{ matrix.TPL_DOCKERFILE }}
- name: Run the docker build docker script
env:
TPL_DOCKERFILE: ${{ matrix.TPL_DOCKERFILE }}
DOCKER_REPOSITORY: ${{ matrix.DOCKER_REPOSITORY }}
DOCKER_BASE_IMAGE: ${{ steps.base.outputs.DOCKER_BASE_IMAGE }}
GCC_VERSION: ${{ matrix.GCC_VERSION }}
CLANG_VERSION: ${{ matrix.CLANG_VERSION }}
INSTALL_DIR_ROOT: ${{ matrix.INSTALL_DIR_ROOT || '/opt/GEOS' }}
HOST_CONFIG: ${{ matrix.HOST_CONFIG || 'host-configs/environment.cmake' }}
SPEC: ${{ matrix.SPEC || 'undefined' }}
COMMIT: ${{ github.sha }}
BUILD_DIR: ${{ github.workspace }}
DOCKER_TAG: ${{ github.event.number }}-${{ github.run_number }}
run: bash -x ./scripts/docker-build.sh
- name: Login to DockerHub
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
logout: ${{ matrix.RUNS_ON != 'streak2' }}
- name: Push docker image
env:
DOCKER_REPOSITORY: ${{ matrix.DOCKER_REPOSITORY }}
DOCKER_TAG: ${{ github.event.number }}-${{ github.run_number }}
run: docker push ${DOCKER_REPOSITORY}:${DOCKER_TAG}
# Convenience job - passes when all docker images are built.
check_that_all_images_built:
runs-on: ubuntu-22.04
needs: [build_images]
steps:
- name: Success
run: "true"