-
Notifications
You must be signed in to change notification settings - Fork 17
136 lines (122 loc) · 6.9 KB
/
docker_build_tpls.yml
File metadata and controls
136 lines (122 loc) · 6.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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
env:
ROOT_IMAGE_TAG_HASH: b5b06ad736cc8f2df227dabf8ff1da1a2f538939
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
# - 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
# - 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
# - 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
# - 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
# - 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
- name: ubi (8.9, gcc 13.2.1, open-mpi 1.10.7, cuda 12.4.1)
DOCKER_ROOT_IMAGE: geosx/ubi:8.9-cuda12.4
DOCKER_REPOSITORY: geosx/ubi8.9-gcc13-cuda12.4
DOCKERFILE: docker/tpl-ubi-gcc-cuda.Dockerfile
CMAKE_CXX_COMPILER: /opt/rh/gcc-toolset-13/root/bin/g++
CMAKE_C_COMPILER: /opt/rh/gcc-toolset-13/root/bin/gcc
CMAKE_FORTRAN_COMPILER: /opt/rh/gcc-toolset-13/root/bin/gfortran
steps:
- name: Checkout
uses: actions/checkout@v4.1.6
with:
submodules: true
lfs: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.3.0
- name: Login to DockerHub
uses: docker/login-action@v3.2.0
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 }}
CMAKE_CXX_COMPILER: ${{ matrix.CMAKE_CXX_COMPILER }}
CMAKE_C_COMPILER: ${{ matrix.CMAKE_C_COMPILER }}
CMAKE_FORTRAN_COMPILER: ${{ matrix.CMAKE_FORTRAN_COMPILER }}
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'}}
DOCKER_ROOT_IMAGE: ${{ matrix.DOCKER_ROOT_IMAGE || 'undefined' }}-${{env.ROOT_IMAGE_TAG_HASH}}
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"