-
Notifications
You must be signed in to change notification settings - Fork 65
116 lines (114 loc) · 4 KB
/
build_conduit_clang_asan.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
name: build_conduit_clang_asan
on:
pull_request:
branches: [ develop ]
jobs:
build_basic:
name: Ubuntu Build Conduit Clang Asan
runs-on: ubuntu-latest
env:
CC: clang
CXX: clang++
MPICH_CC: clang
MPICH_CXX: clang++
CFLAGS: "-fsanitize=address -DNDEBUG"
CXXFLAGS: "-fsanitize=address -DNDEBUG"
steps:
- name: Install System Deps
run: |
sudo apt-get update -y
sudo apt-get install -y binutils \
clang \
llvm \
python3 \
perl \
git \
git-lfs \
curl \
wget \
tar \
unzip \
build-essential \
libncurses-dev \
libssl-dev \
libblas-dev \
liblapack-dev \
zlib1g-dev \
libgdbm-dev \
libreadline-dev \
libsqlite3-dev \
libbz2-dev \
mpich \
libmpich-dev \
cmake
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Build TPLs
run: |
env enable_mpi=OFF \
build_config=Debug \
enable_fortran=OFF \
enable_tests=OFF \
enable_verbose=OFF \
build_conduit=false \
build_jobs=4 \
prefix=tpls \
./scripts/build_conduit/build_conduit.sh
# - name: Configure Conduit (MPI)
# run: |
# cmake --version
# echo "**** Configuring Conduit"
# # Note: for system clang + mpich, we need to pass
# # mpi compiler wrappers are the c & cxx compilers
# cmake -S src \
# -B build \
# -C tpls/conduit-config.cmake \
# -DCMAKE_C_COMPILER=/usr/bin/mpicc \
# -DCMAKE_CXX_COMPILER=/usr/bin/mpicxx \
# -DENABLE_TESTS=ON \
# -DCMAKE_INSTALL_PREFIX=install
- name: Configure Conduit
run: |
cmake --version
echo "**** Configuring Conduit"
cmake -S src \
-B build \
-C tpls/conduit-config.cmake \
-DENABLE_TESTS=ON \
-DCMAKE_INSTALL_PREFIX=install
- name: Build Conduit
run: |
echo "**** Building Conduit"
cmake --build build -j4 --config Debug
- name: Run Conduit Unit Tests
run: |
echo "**** Conduit Unit Tests (asan)"
export ASAN_SYMBOLIZER_PATH=`which llvm-symbolizer`
export CWD=`pwd`
export LSAN_OPTIONS="suppressions=${CWD}/src/cmake/lsan.supp"
echo "ASAN_SYMBOLIZER_PATH=${ASAN_SYMBOLIZER_PATH}"
echo "LSAN_OPTIONS=${LSAN_OPTIONS}"
export CTEST_OUTPUT_ON_FAILURE=1
ctest --test-dir build
- name: Install Conduit
run: |
echo "**** Installing Conduit"
cmake --install build --config Debug
- name: Check Install
run: |
echo "**** Checking Conduit using-with-cmake example"
cd install/examples/conduit/using-with-cmake
cmake -S . -B build
cmake --build build --verbose -j4
./build/conduit_example
# - name: Check Install (MPI)
# run: |
# echo "**** Checking Conduit using-with-cmake-mpi example"
# export CC=/usr/bin/mpicc
# export CXX=/usr/bin/mpicxx
# cd install/examples/conduit/using-with-cmake-mpi
# cmake -S . -B build
# cmake --build build --verbose -j4
# mpiexec -n 2 ./build/conduit_mpi_example