@@ -36,56 +36,59 @@ jobs:
36
36
if : always()
37
37
run : cmake -P cmake/spell.cmake
38
38
39
- sanitize :
39
+ test-avx512 :
40
40
needs : [lint]
41
41
42
- runs-on : ubuntu-22.04
42
+ strategy :
43
+ matrix :
44
+ os : [ubuntu-22.04]
43
45
44
- env : { CXX: clang++-18 }
46
+ runs-on : ${{ matrix.os } }
45
47
46
48
steps :
47
49
- uses : actions/checkout@v4
48
50
49
- - name : Install Python
50
- uses : actions/setup-python@v5
51
- with : { python-version: "3.12" }
52
-
53
51
- name : Install LLVM 18
54
52
run : |
55
53
wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | sudo tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
56
54
sudo apt-add-repository "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-18 main"
57
55
sudo apt update
58
56
sudo apt install llvm-18 llvm-18-dev llvm-18-tools clang-18 clang-tidy-18 clang-format-18 clang-tools-18 libclang-18-dev -y
59
57
58
+ - name : Install static analyzers
59
+ if : matrix.os == 'ubuntu-22.04'
60
+ run : >-
61
+ sudo apt-get install clang-tidy-18 cppcheck -y -q
62
+
63
+ sudo update-alternatives --install
64
+ /usr/bin/clang-tidy clang-tidy
65
+ /usr/bin/clang-tidy-18 140
66
+
60
67
- name : Conan cache
61
68
uses : actions/cache@v4
62
69
with :
63
70
path : conan_cache_save.tgz
64
- key : conan-sanitize -${{ hashFiles('conan*.[pl][yo]*') }}
71
+ key : conan-${{ matrix.os }} -${{ hashFiles('conan*.[pl][yo]*') }}
65
72
66
73
- name : Install dependencies
74
+ shell : bash
67
75
run : bash < .github/scripts/conan-ci-setup.sh
68
76
69
77
- name : Configure
70
- run : cmake --preset=ci-sanitize
78
+ shell : pwsh
79
+ run : cmake -DENABLE_SIMD=ON "--preset=ci-$("${{ matrix.os }}".split("-")[0])"
71
80
72
81
- name : Build
73
- run : cmake --build build/sanitize -j 2
82
+ run : cmake --build build --config Release -j 4
83
+
84
+ - name : Install
85
+ run : cmake --install build --config Release --prefix prefix
74
86
75
87
- name : Test
76
- working-directory : build/sanitize
77
- env :
78
- ASAN_OPTIONS : " strict_string_checks=1:\
79
- detect_stack_use_after_return=1:\
80
- check_initialization_order=1:\
81
- strict_init_order=1:\
82
- detect_leaks=1:\
83
- halt_on_error=1"
84
- UBSAN_OPTIONS : " print_stacktrace=1:\
85
- halt_on_error=1"
86
- run : ctest --output-on-failure --no-tests=error -j 2
87
-
88
- test :
88
+ working-directory : build
89
+ run : ctest --output-on-failure --no-tests=error -C Release -j 2
90
+
91
+ test-nosimd :
89
92
needs : [lint]
90
93
91
94
strategy :
@@ -113,10 +116,6 @@ jobs:
113
116
/usr/bin/clang-tidy clang-tidy
114
117
/usr/bin/clang-tidy-18 140
115
118
116
- - name : Install Python
117
- uses : actions/setup-python@v5
118
- with : { python-version: "3.12" }
119
-
120
119
- name : Conan cache
121
120
uses : actions/cache@v4
122
121
with :
@@ -129,10 +128,10 @@ jobs:
129
128
130
129
- name : Configure
131
130
shell : pwsh
132
- run : cmake "--preset=ci-$("${{ matrix.os }}".split("-")[0])"
131
+ run : cmake -DENABLE_SIMD=OFF "--preset=ci-$("${{ matrix.os }}".split("-")[0])"
133
132
134
133
- name : Build
135
- run : cmake --build build --config Release -j 2
134
+ run : cmake --build build --config Release -j 4
136
135
137
136
- name : Install
138
137
run : cmake --install build --config Release --prefix prefix
@@ -141,3 +140,62 @@ jobs:
141
140
working-directory : build
142
141
run : ctest --output-on-failure --no-tests=error -C Release -j 2
143
142
143
+ test-neon :
144
+ needs : [lint]
145
+
146
+ strategy :
147
+ matrix :
148
+ os : [macos-14]
149
+
150
+ runs-on : ${{ matrix.os }}
151
+ defaults :
152
+ run :
153
+ working-directory : exchange
154
+
155
+
156
+ env :
157
+ CC : /opt/homebrew/opt/llvm@18/bin/clang
158
+ CXX : /opt/homebrew/opt/llvm@18/bin/clang++
159
+ CLANG_DIR : ' /opt/homebrew/opt/llvm@18/bin/clang'
160
+ LLVM_DIR : ' /opt/homebrew/opt/llvm@18'
161
+
162
+ steps :
163
+ - uses : actions/checkout@v4
164
+
165
+ - name : Install LLVM 18
166
+ run : |
167
+ brew install llvm@18
168
+
169
+ - name : Verify Installation
170
+ run : |
171
+ ${{ env.CC }} --version
172
+ ${{ env.CXX }} --version
173
+
174
+ - name : Install static analyzers
175
+ if : matrix.os == 'macos-14'
176
+ run : >-
177
+ brew install cppcheck
178
+
179
+ - name : Conan cache
180
+ uses : actions/cache@v4
181
+ with :
182
+ path : conan_cache_save.tgz
183
+ key : conan-${{ matrix.os }}-${{ hashFiles('conan*.[pl][yo]*') }}
184
+
185
+ - name : Install dependencies
186
+ shell : bash
187
+ run : bash < .github/scripts/conan-ci-setup.sh
188
+
189
+ - name : Configure
190
+ shell : pwsh
191
+ run : cmake -DENABLE_SIMD=ON "--preset=ci-$("${{ matrix.os }}".split("-")[0])"
192
+
193
+ - name : Build
194
+ run : cmake --build build --config Release -j 4
195
+
196
+ - name : Install
197
+ run : cmake --install build --config Release --prefix prefix
198
+
199
+ - name : Test
200
+ working-directory : exchange/build
201
+ run : ctest --output-on-failure --no-tests=error -C Release -j 2
0 commit comments