-
Notifications
You must be signed in to change notification settings - Fork 34
195 lines (191 loc) · 7.43 KB
/
Copy pathci-tests.yml
File metadata and controls
195 lines (191 loc) · 7.43 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
name: CI Tests
on:
pull_request:
push:
branches:
- develop
# Cancel previous jobs if an update has been made to the pull request
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }}
env:
CLANG_DOCKER_IMAGE: axom/tpls:clang-19_08-19-26_21h-53m
GCC_DOCKER_IMAGE: axom/tpls:gcc-13_08-19-26_21h-52m
jobs:
# Hacky solution to reference env variables outside of `run` steps https://stackoverflow.com/a/74217028
set_image_vars:
runs-on: ubuntu-latest
steps:
- name: Do Nothing
run: echo
outputs:
clang_docker_image: ${{ env.CLANG_DOCKER_IMAGE }}
gcc_docker_image: ${{ env.GCC_DOCKER_IMAGE }}
build_and_test:
runs-on: ubuntu-24.04
needs:
- set_image_vars
strategy:
fail-fast: true
matrix:
build_type: [ Debug, Release ]
config:
- job_name: gcc@13.3.1, shared, benchmarks
host_config: gcc@13.3.1.cmake
compiler_image: ${{ needs.set_image_vars.outputs.gcc_docker_image }}
cmake_opts: '-DBUILD_SHARED_LIBS=ON -DENABLE_BENCHMARKS:BOOL=ON'
do_build: 'yes'
do_benchmarks: 'yes'
- job_name: gcc@13.3.1, shared, 32bit
host_config: gcc@13.3.1.cmake
compiler_image: ${{ needs.set_image_vars.outputs.gcc_docker_image }}
cmake_opts: '-DBUILD_SHARED_LIBS=ON -DAXOM_USE_64BIT_INDEXTYPE:BOOL=OFF -DAXOM_NO_INT64_T=1'
do_build: 'yes'
do_benchmarks: 'no'
- job_name: llvm@19.0.0, shared, benchmarks, quest regression
host_config: llvm@19.0.0.cmake
compiler_image: ${{ needs.set_image_vars.outputs.clang_docker_image }}
cmake_opts: '-DBUILD_SHARED_LIBS=ON -DENABLE_BENCHMARKS:BOOL=ON'
do_build: 'yes'
do_benchmarks: 'yes'
include:
- build_type: Debug
config:
job_name: llvm@19.0.0, shared, no raja
host_config: llvm@19.0.0.cmake
compiler_image: ${{ needs.set_image_vars.outputs.clang_docker_image }}
cmake_opts: '-DBUILD_SHARED_LIBS=ON -DAXOM_ENABLE_MIR:BOOL=OFF -DAXOM_ENABLE_BUMP:BOOL=OFF -U RAJA_DIR'
do_build: 'yes'
do_benchmarks: 'no'
- build_type: Debug
config:
job_name: llvm@19.0.0, shared, no umpire
host_config: llvm@19.0.0.cmake
compiler_image: ${{ needs.set_image_vars.outputs.clang_docker_image }}
cmake_opts: '-DBUILD_SHARED_LIBS=ON -U UMPIRE_DIR'
do_build: 'yes'
do_benchmarks: 'no'
- build_type: Debug
config:
job_name: llvm@19.0.0, shared, no raja and umpire
host_config: llvm@19.0.0.cmake
compiler_image: ${{ needs.set_image_vars.outputs.clang_docker_image }}
cmake_opts: '-DBUILD_SHARED_LIBS=ON -DAXOM_ENABLE_MIR:BOOL=OFF -DAXOM_ENABLE_BUMP:BOOL=OFF -U RAJA_DIR -U UMPIRE_DIR'
do_build: 'yes'
do_benchmarks: 'no'
- build_type: Debug
config:
job_name: llvm@19.0.0, shared, no profiling
host_config: llvm@19.0.0.cmake
compiler_image: ${{ needs.set_image_vars.outputs.clang_docker_image }}
cmake_opts: '-DBUILD_SHARED_LIBS=ON -U CALIPER_DIR -U ADIAK_DIR'
do_build: 'yes'
do_benchmarks: 'no'
name: ${{ matrix.build_type }} - ${{ matrix.config.job_name }}
container:
image: ${{ matrix.config.compiler_image }}
volumes:
- /home/axom/axom
# Required - default is set to user "axom"
options: --user root
steps:
- name: Checkout Axom
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
submodules: recursive
- name: Print Matrix Variables
run: |
echo "build_type ${{ matrix.build_type }}"
echo "cmake_opts ${{ matrix.config.cmake_opts }}"
echo "quest_extra_regression_tests ${{ contains(matrix.config.job_name, 'quest regression') && 'ON' || 'OFF' }}"
echo "compiler_image ${{ matrix.config.compiler_image }}"
echo "host_config ${{ matrix.config.host_config }}"
- name: Build and Test ${{ matrix.build_type }} - ${{ matrix.config.job_name }}
timeout-minutes: 80
run: |
DO_BUILD=${{ matrix.config.do_build }} \
DO_BENCHMARKS=${{ matrix.config.do_benchmarks }} \
HOST_CONFIG=${{ matrix.config.host_config }} \
CMAKE_EXTRA_FLAGS=" ${{ matrix.config.cmake_opts }} -DAXOM_QUEST_ENABLE_EXTRA_REGRESSION_TESTS:BOOL=${{ contains(matrix.config.job_name, 'quest regression') && 'ON' || 'OFF' }} " \
BUILD_TYPE=${{ matrix.build_type }} \
./scripts/github-actions/linux-build_and_test.sh
- name: Upload Test Results
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: Test Results ${{ matrix.build_type }} - ${{ matrix.config.job_name }}
path: "**/Test.xml"
windows_build_and_test:
runs-on: windows-latest
strategy:
# If any of checks (e.g. style) fail, allow other jobs to continue running.
fail-fast: false
env:
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE:BOOL=OFF -DAXOM_ENABLE_INLET:BOOL=OFF -DAXOM_ENABLE_KLEE:BOOL=OFF -DAXOM_ENABLE_SINA:BOOL=OFF -DAXOM_ENABLE_MIR:BOOL=OFF -DAXOM_ENABLE_BUMP:BOOL=OFF'
steps:
- name: Checkout Axom
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
submodules: recursive
- name: Windows - CMake
run: |
cmake ${{ env.CMAKE_EXTRA_FLAGS }} -B build -S src
shell: pwsh
- name: Windows - Build
run: |
cmake --build build
shell: pwsh
- name: Windows - Test
run: |
cd build
ctest -C Debug -T Test --output-on-failure -V
shell: pwsh
macos_build_and_test:
runs-on: macos-latest
strategy:
# If any of checks (e.g. style) fail, allow other jobs to continue running.
fail-fast: false
env:
CMAKE_EXTRA_FLAGS: '-DAXOM_ENABLE_SIDRE:BOOL=OFF -DAXOM_ENABLE_INLET:BOOL=OFF -DAXOM_ENABLE_KLEE:BOOL=OFF -DAXOM_ENABLE_SINA:BOOL=OFF -DAXOM_ENABLE_MIR:BOOL=OFF -DAXOM_ENABLE_BUMP:BOOL=OFF'
steps:
- name: Checkout Axom
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
submodules: recursive
- name: macOS - CMake
run: |
cmake ${{ env.CMAKE_EXTRA_FLAGS }} -B build -S src
shell: bash
- name: macOS - Build
run: |
cmake --build build
shell: bash
- name: macOS - Test
run: |
cd build
ctest -T Test --output-on-failure -V
shell: bash
check_code:
runs-on: ubuntu-24.04
needs:
- set_image_vars
strategy:
# If any of checks (e.g. style) fail, allow other jobs to continue running.
fail-fast: false
matrix:
check_type: [style]
container:
image: ${{ needs.set_image_vars.outputs.clang_docker_image }}
volumes:
- /home/axom/axom
# Required - default is set to user "axom"
options: --user root
env:
CHECK_TYPE: ${{ matrix.check_type }}
HOST_CONFIG: llvm@19.0.0.cmake
steps:
- name: Checkout Axom
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
submodules: recursive
- name: Check ${{ matrix.check_type }}
run: ./scripts/github-actions/linux-check.sh