-
Notifications
You must be signed in to change notification settings - Fork 12
132 lines (116 loc) · 5.64 KB
/
docker_build_tpls.yml
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
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: ${{ matrix.RUNS_ON }}
strategy:
# In-progress jobs will not be cancelled if there is a failure
fail-fast : false
matrix:
include:
- name: Ubuntu (20.04, gcc 9.4.0, open-mpi 4.0.3)
DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc9
TPL_DOCKERFILE: docker/tpl-ubuntu-gcc.Dockerfile
DOCKER_ROOT_IMAGE: ubuntu:20.04
DOCKER_COMPILER_BUILD_ARG: "--build-arg GCC_MAJOR_VERSION=9"
RUNS_ON: ubuntu-latest
- name: Ubuntu (20.04, gcc 10.5.0, open-mpi 4.0.3) - github codespaces
DOCKER_REPOSITORY: geosx/ubuntu20.04-gcc10
TPL_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"
RUNS_ON: ubuntu-latest
- 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
TPL_DOCKERFILE: docker/tpl-ubuntu-gcc.Dockerfile
DOCKER_COMPILER_BUILD_ARG: "--build-arg GCC_MAJOR_VERSION=11"
RUNS_ON: ubuntu-latest
- 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
TPL_DOCKERFILE: docker/tpl-ubuntu-gcc.Dockerfile
DOCKER_COMPILER_BUILD_ARG: "--build-arg GCC_MAJOR_VERSION=12"
RUNS_ON: ubuntu-latest
- 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
TPL_DOCKERFILE: docker/tpl-ubuntu-clang.Dockerfile
DOCKER_COMPILER_BUILD_ARG: "--build-arg CLANG_MAJOR_VERSION=15 --build-arg GCC_MAJOR_VERSION=11"
RUNS_ON: ubuntu-latest
- 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
TPL_DOCKERFILE: docker/tpl-ubuntu-clang-cuda.Dockerfile
RUNS_ON: ubuntu-latest
- name: Rockylinux (8, gcc 8.5, cuda 12.5)
DOCKER_REPOSITORY: geosx/rockylinux8-gcc8-cuda12.5
TPL_DOCKERFILE: docker/tpl-rockylinux-gcc-cuda-12.Dockerfile
RUNS_ON: Runner_4core_16GB
- name: Rockylinux (8, clang 17.0.6, cuda 12.5)
DOCKER_REPOSITORY: geosx/rockylinux8-clang17-cuda12.5
TPL_DOCKERFILE: docker/tpl-rockylinux-clang-cuda-12.Dockerfile
RUNS_ON: Runner_4core_16GB
- name: Pangea 3 (AlmaLinux 8.8, gcc 9.4.0, open-mpi 4.1.2, cuda 11.5.0, openblas 0.3.10)
DOCKER_REPOSITORY: geosx/pangea3-almalinux8-gcc9.4-openmpi4.1.2-cuda11.5.0-openblas0.3.18
TPL_DOCKERFILE: docker/TotalEnergies/pangea-3/pangea3-tpl.Dockerfile
HOST_CONFIG: host-configs/TotalEnergies/pangea-3/pangea3-gcc8.4.1-openmpi-4.1.2.cmake
DOCKER_ROOT_IMAGE: 7g8efcehpff/pangea-almalinux8-gcc9.4-openmpi4.1.2-cuda11.5.0-openblas0.3.18:4
HOST_ARCH: ppc64le
RUNS_ON: streak2
- name: Pangea 4 (redhat 8, gcc 12.1.0, hpcx 2.20.0, mkl 2023.2.0)
DOCKER_REPOSITORY: geosx/pangea4-gcc12.1-hpcxompi2.20.0-onemkl2023.2.0
DOCKERFILE: docker/TotalEnergies/pangea-4/pangea4-tpl.Dockerfile
DOCKER_ROOT_IMAGE: onetechssc/pangea4:gcc12.1-hpcxompi2.20.0-onemkl2023.2.0_v1.0
HOST_CONFIG: host-configs/TotalEnergies/pangea4/pangea4-gcc12.1-hpcxompi2.20.0-onemkl2023.2.0.cmake
INSTALL_DIR_ROOT: /workrd/SCR/NUM/GEOS_environment/p4/install/tpl
RUNS_ON: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
lfs: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Setup QEMU for ${{ matrix.HOST_ARCH }} emulation
if: ${{ matrix.HOST_ARCH }}
uses: docker/setup-qemu-action@v3
with:
platforms: ${{ matrix.HOST_ARCH }}
- name: Print environment
run: printenv
- name: Run the docker build docker script
env:
TPL_DOCKERFILE: ${{ matrix.TPL_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'}}
DOCKER_ROOT_IMAGE: ${{ matrix.DOCKER_ROOT_IMAGE || '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@v3
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"