Spack docker containers #424
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
jobs: | |
build_images: | |
name: ${{ matrix.name }} | |
runs-on: ubuntu-22.04 | |
strategy: | |
# In-progress jobs will not be cancelled if there is a failure | |
fail-fast : false | |
matrix: | |
include: | |
- name: Pangea 2 (centos 7.6, gcc 8.3.0, open-mpi 2.1.5, mkl 2019.3) | |
DOCKER_REPOSITORY: geosx/pangea2-gcc8.3.0-openmpi2.1.5-mkl2019.3 | |
DOCKERFILE: docker/TotalEnergies/Dockerfile | |
DOCKER_ROOT_IMAGE: totogaz/pangea2-gcc8.3.0-openmpi2.1.5-mkl2019.3-no-geosx:0.0.1 | |
INSTALL_DIR_ROOT: /workrd/SCR/GEOSX/install/gcc8 | |
SPEC: "%[email protected]~pygeosx~openmp" | |
- name: Pecan GPU (centos 7.7, gcc 8.2.0, open-mpi 4.0.1, mkl 2019.5, cuda 11.5.119) | |
DOCKER_REPOSITORY: geosx/pecan-gpu-gcc8.2.0-openmpi4.0.1-mkl2019.5-cuda11.5.119 | |
DOCKERFILE: docker/TotalEnergies/Dockerfile | |
DOCKER_ROOT_IMAGE: totogaz/pecan-gcc8.2.0-openmpi4.0.1-mkl2019.5-cuda11.5.119-no-geosx:0.0.1 | |
HOST_CONFIG: docker/TotalEnergies/pecan-GPU.cmake | |
INSTALL_DIR_ROOT: /shared/data1/Users/j0436735/travis-deployments/GPU | |
SPEC: "%[email protected]+cuda~pygeosx cuda_arch=70 ^[email protected]+allow-unsupported-compilers" | |
- name: Pecan CPU (centos 7.7, gcc 8.2.0, open-mpi 4.0.1, mkl 2019.5) | |
DOCKER_REPOSITORY: geosx/pecan-cpu-gcc8.2.0-openmpi4.0.1-mkl2019.5 | |
DOCKERFILE: docker/TotalEnergies/Dockerfile | |
DOCKER_ROOT_IMAGE: totogaz/pecan-gcc8.2.0-openmpi4.0.1-mkl2019.5-cuda11.5.119-no-geosx:0.0.1 | |
HOST_CONFIG: docker/TotalEnergies/pecan-CPU.cmake | |
INSTALL_DIR_ROOT: /shared/data1/Users/j0436735/travis-deployments/CPU | |
SPEC: "%[email protected]~pygeosx" | |
- name: Sherlock CPU (centos 7.9.2009, gcc 10.1.0, open-mpi 4.1.2, openblas 0.3.10, zlib 1.2.11) | |
DOCKER_REPOSITORY: geosx/sherlock-gcc10.1.0-openmpi4.1.2-openblas0.3.10-zlib1.2.11 | |
DOCKERFILE: docker/Stanford/Dockerfile | |
DOCKER_ROOT_IMAGE: matteofrigo5/sherlock-gcc10.1.0-openmpi4.1.2-cuda11.7.1-openblas0.3.10-zlib1.2.11-no-geosx:0.0.2 | |
HOST_CONFIG: docker/Stanford/sherlock-gcc10-ompi4.1.2-openblas0.3.10.cmake | |
INSTALL_DIR_ROOT: /oak/stanford/groups/tchelepi/geos-sherlock/CPU | |
SPEC: "%[email protected]~pygeosx" | |
- name: Sherlock GPU (centos 7.9.2009, gcc 10.1.0, open-mpi 4.1.2, cuda 11.7.1, openblas 0.3.10, zlib 1.2.11) | |
DOCKER_REPOSITORY: geosx/sherlock-gcc10.1.0-openmpi4.1.2-cuda11.7.1-openblas0.3.10-zlib1.2.11 | |
DOCKERFILE: docker/Stanford/Dockerfile | |
DOCKER_ROOT_IMAGE: matteofrigo5/sherlock-gcc10.1.0-openmpi4.1.2-cuda11.7.1-openblas0.3.10-zlib1.2.11-no-geosx:0.0.2 | |
HOST_CONFIG: docker/Stanford/sherlock-gcc10-ompi4.1.2-openblas0.3.10-cuda11.7.1-sm70.cmake | |
INSTALL_DIR_ROOT: /oak/stanford/groups/tchelepi/geos-sherlock/GPU | |
SPEC: "%[email protected]~pygeosx cuda_arch=70 ^[email protected]+allow-unsupported-compilers" | |
- name: Ubuntu (20.04, gcc 9.4.0, open-mpi 4.0.3) | |
DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc9 | |
DOCKERFILE: docker/tpl-ubuntu-gcc.Dockerfile | |
DOCKER_ROOT_IMAGE: ubuntu:20.04 | |
DOCKER_COMPILER_BUILD_ARG: "--build-arg GCC_MAJOR_VERSION=9" | |
- name: Ubuntu (20.04, gcc 10.5.0, open-mpi 4.0.3) - github codespaces | |
DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc10 | |
DOCKERFILE: docker/tpl-ubuntu-gcc.Dockerfile | |
DOCKER_ROOT_IMAGE: mcr.microsoft.com/vscode/devcontainers/base:ubuntu-20.04 | |
DOCKER_COMPILER_BUILD_ARG: "--build-arg GCC_MAJOR_VERSION=10" | |
- name: Ubuntu (22.04, gcc 11.4.0, open-mpi 4.1.2) | |
DOCKER_ROOT_IMAGE: ubuntu:22.04 | |
DOCKER_REPOSITORY: geosx/ubuntu22.04-gcc11 | |
DOCKERFILE: docker/tpl-ubuntu-gcc.Dockerfile | |
DOCKER_COMPILER_BUILD_ARG: "--build-arg GCC_MAJOR_VERSION=11" | |
- name: Ubuntu (22.04, gcc 12.3.0, open-mpi 4.1.2) | |
DOCKER_ROOT_IMAGE: ubuntu:22.04 | |
DOCKER_REPOSITORY: geosx/ubuntu22.04-gcc12 | |
DOCKERFILE: docker/tpl-ubuntu-gcc.Dockerfile | |
DOCKER_COMPILER_BUILD_ARG: "--build-arg GCC_MAJOR_VERSION=12" | |
- name: Ubuntu (22.04, clang 15.0.7 + gcc 11.4.0, open-mpi 4.1.2) | |
DOCKER_ROOT_IMAGE: ubuntu:22.04 | |
DOCKER_REPOSITORY: geosx/ubuntu22.04-clang15 | |
DOCKERFILE: docker/tpl-ubuntu-clang.Dockerfile | |
DOCKER_COMPILER_BUILD_ARG: "--build-arg CLANG_MAJOR_VERSION=15 --build-arg GCC_MAJOR_VERSION=11" | |
- name: Ubuntu (20.04, clang 10.0.0 + gcc 9.4.0, open-mpi 4.0.3, cuda-11.8.89) | |
DOCKER_REPOSITORY: geosx/ubuntu20.04-clang10.0.0-cuda11.8.89 | |
DOCKERFILE: docker/tpl-ubuntu-clang-cuda.Dockerfile | |
- name: Centos (7.7, gcc 8.3.1, open-mpi 1.10.7, cuda 11.8.89) | |
DOCKER_REPOSITORY: geosx/centos7.7-gcc8.3.1-cuda11.8.89 | |
DOCKERFILE: docker/tpl-centos-gcc-cuda.Dockerfile | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
submodules: true | |
lfs: true | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Print environment | |
run: printenv | |
- name: Run the docker build and push docker script | |
env: | |
DOCKERFILE: ${{ matrix.DOCKERFILE }} | |
DOCKER_REPOSITORY: ${{ matrix.DOCKER_REPOSITORY }} | |
DOCKER_COMPILER_BUILD_ARG: ${{ matrix.DOCKER_COMPILER_BUILD_ARG }} | |
INSTALL_DIR_ROOT: ${{ matrix.INSTALL_DIR_ROOT || '/opt/GEOS' }} | |
HOST_CONFIG: ${{ matrix.HOST_CONFIG || 'host-configs/environment.cmake'}} | |
SPEC: ${{ matrix.SPEC || 'undefined' }} | |
DOCKER_ROOT_IMAGE: ${{ matrix.DOCKER_ROOT_IMAGE || 'undefined' }} | |
PULL_REQUEST_NUMBER: ${{ github.event.number }} | |
BUILD_NUMBER: ${{ github.run_number }} | |
COMMIT: ${{ github.sha }} | |
BUILD_DIR: ${{ github.workspace }} | |
run: bash -x ./scripts/docker-build-and-push.sh | |
# 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" |