-
Notifications
You must be signed in to change notification settings - Fork 23
148 lines (132 loc) · 5.03 KB
/
ci_automake.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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
name: CI for Automake
on:
push:
paths-ignore:
- "**/CMakeLists.txt"
- "**.cmake"
- "**.cmake.in"
- "cmake/**"
- "CMake*"
- ".github/workflows/*.yml"
- "!.github/workflows/ci_automake.yml"
pull_request:
release:
types: [published]
env:
CFLAGS: -lgfortran -O2 -g
CXXFLAGS: -lgfortran --std=c++17 -O2 -g
FCFLAGS: -lgfortran -cpp -O2 -g
FFLAGS: -lgfortran -cpp -O2 -g
jobs:
linux:
runs-on: ubuntu-20.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
- name: "Serial Minimal"
configure_flags: ""
ubuntu_packages: ""
- name: "Serial With Clawpack"
configure_flags: "--enable-clawpack"
ubuntu_packages: ""
- name: "Serial With Clawpack and HDF"
configure_flags: "--enable-clawpack --with-hdf5"
ubuntu_packages: "libhdf5-dev"
- name: "Serial With GeoClaw"
configure_flags: "--enable-geoclaw"
ubuntu_packages: ""
- name: "Serial With CudaClaw (CUDA 10.1)"
configure_flags: "CUDA_CFLAGS=\"-arch=sm_61\" LIBS=\"-lcuda -lcudart -lnvToolsExt\" --enable-cudaclaw --disable-shared"
ubuntu_packages: "nvidia-cuda-toolkit"
cuda: true
- name: "Serial With CudaClaw (CUDA 11.3)"
configure_flags: "NVCC=/usr/local/cuda-11.3/bin/nvcc CUDA_CFLAGS=\"-arch=sm_61\" LIBS=\"-L/usr/local/cuda-11.3/lib64 -lcudart -lnvToolsExt\" --enable-cudaclaw --disable-shared"
ubuntu_packages: ""
cuda: true
cuda_11_3: true
- name: "MPI Minimal"
configure_flags: "--enable-mpi"
ubuntu_packages: "libopenmpi-dev openmpi-bin"
- name: "MPI Debug With CXX"
configure_flags: "--enable-mpi --enable-debug CC=mpicxx"
ubuntu_packages: "libopenmpi-dev openmpi-bin"
- name: "MPI With Clawpack"
configure_flags: "--enable-clawpack --enable-mpi"
ubuntu_packages: "libopenmpi-dev openmpi-bin"
- name: "MPI With Clawpack and HDF"
configure_flags: "--enable-clawpack --enable-mpi --with-hdf5"
ubuntu_packages: "libopenmpi-dev openmpi-bin libhdf5-openmpi-dev"
- name: "MPI With GeoClaw"
configure_flags: "--enable-geoclaw --enable-mpi"
ubuntu_packages: "libopenmpi-dev openmpi-bin"
- name: "MPI With CudaClaw (CUDA 10.1)"
configure_flags: "CUDA_CFLAGS=\"-arch=sm_61 -I/usr/lib/x86_64-linux-gnu/openmpi/include\" LIBS=\"-lcuda -lcudart -lnvToolsExt\" --enable-cudaclaw --enable-mpi --disable-shared"
ubuntu_packages: "libopenmpi-dev openmpi-bin nvidia-cuda-toolkit"
cuda: true
- name: "MPI With CudaClaw (CUDA 11.3)"
configure_flags: "NVCC=/usr/local/cuda-11.3/bin/nvcc CUDA_CFLAGS=\"-arch=sm_61 -I/usr/lib/x86_64-linux-gnu/openmpi/include\" LIBS=\"-L/usr/local/cuda-11.3/lib64 -lcudart -lnvToolsExt\" --enable-cudaclaw --enable-mpi --disable-shared"
ubuntu_packages: "libopenmpi-dev openmpi-bin"
cuda: true
cuda_11_3: true
- name: "MPI With ThunderEgg"
configure_flags: "--enable-mpi --enable-thunderegg --with-thunderegg=$GITHUB_WORKSPACE/ThunderEgg"
ubuntu_packages: "cmake libopenmpi-dev openmpi-bin libfftw3-dev"
thunderegg: true
name: Automake ${{ matrix.name }} Build on Linux
steps:
- uses: actions/checkout@v4
name: "Checkout Source code"
- uses: actions/checkout@v4
name: "Checkout ThunderEgg Source code"
if: ${{ matrix.thunderegg }}
with:
repository: ThunderEgg/ThunderEgg
ref: v1.0.5
path: ThunderEggSrc
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install ${{ matrix.ubuntu_packages }}
- name: Install Cuda Toolkit 11.3
if: ${{ matrix.cuda_11_3 }}
run: |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-11-3
- name: Install ThunderEgg
if: ${{ matrix.thunderegg }}
run: |
cd ThunderEggSrc
cmake -DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/ThunderEgg/ -DBUILD_TESTING=OFF .
make install
- name: Init and Update Submodules
run: |
git submodule init
git submodule update
- name: Run bootstrap Script
run: ./bootstrap
- name: Configure
run: ./configure ${{ matrix.configure_flags }}
- name: Print Configure log
if: ${{ failure() }}
run: cat config.log
- name: Build
run: |
export V=0
make -j -C sc
make -j -C p4est
make -j || make -j || make -j || make -j || make -j
- name: Tests
if: ${{ !matrix.cuda }}
run: make -j check V=0
- name: Print Test log
if: ${{ failure() }}
run: |
cat sc/test-suite.log
cat p4est/test-suite.log
cat test-suite.log
- name: Install
run: sudo make -j install V=0