testing: try clang-6.0 again, but with libc++
[awesomized/libmemcached] / .github / workflows / cmake-build-ci.yml
1 # Generated file; do not edit!
2 name: cmake-build-ci
3 on:
4 push:
5 paths-ignore:
6 - "docs/**"
7 branches-ignore:
8 - gh-pages
9 - v1.x
10 pull_request:
11 branches:
12 - master
13 - v1.x
14 env:
15 # defaults
16 INSTALL_MEMCACHED: memcached
17 CMAKE_BUILD_TYPE: Debug
18 BUILD_TESTING: "ON"
19 ENABLE_SASL: "OFF"
20 ENABLE_HASH_HSIEH: "ON"
21 ENABLE_DTRACE: "OFF"
22 VERBOSE: "ON"
23 OS_VND: Linux #
24 OS_VER: ubuntu-20.04 #
25 CC_VND: gnu #
26 CC_VER: cur #
27
28 jobs:
29
30 # new memcached
31 ci-new:
32 name: ci-dbg (ubuntu-20.04, gnu, cur, memcached-1.6)
33 runs-on: ubuntu-20.04 #
34 env:
35 INSTALL_MEMCACHED:
36 MEMCACHED_PREFIX: /tmp
37 ENABLE_SASL: "ON"
38 steps:
39 - uses: actions/checkout@v2
40 - uses: actions/checkout@v2
41 with:
42 repository: memcached/memcached
43 path: memcached
44 ref: 1.6.7
45 - name: Prepare environment (for cur gnu on ubuntu-20.04)
46 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
47 run: |
48 echo "CC='gcc-9'" >> ${GITHUB_ENV}
49 echo "CXX='g++-9'" >> ${GITHUB_ENV}
50 - name: Install dependencies (Linux)
51 if: runner.os == 'Linux'
52 run: |
53 sudo apt-get install \
54 libevent-dev \
55 libsasl2-dev \
56 ${INSTALL_MEMCACHED} \
57 ${INSTALL_CC} ${INSTALL_CXX}
58 sudo systemctl stop memcached || true
59 - name: Install dependencies (Mac)
60 if: runner.os == 'macOS'
61 run: |
62 brew install bison flex ${INSTALL_MEMCACHED}
63 brew services stop memcached || true
64 echo "MEMCACHED_BINARY='/usr/local/bin/memcached'" >> ${GITHUB_ENV}
65 - name: Build memcached
66 run: |
67 if test -d memcached
68 then
69 cd memcached
70 ./autogen.sh
71 ./configure CFLAGS="-O2 -pipe" \
72 --prefix=${MEMCACHED_PREFIX} \
73 --enable-sasl \
74 --enable-sasl-pwdb \
75 --disable-coverage \
76 --disable-dependency-tracking \
77 --disable-docs \
78 --disable-extstore \
79 --disable-option-checking \
80 ;
81 make -j2
82 make install
83 cd ..
84 echo "MEMCACHED_BINARY='${MEMCACHED_PREFIX}/bin/memcached'" >> ${GITHUB_ENV}
85 fi
86 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
87 run: cmake -S . -B build
88 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
89 run: make -C build -j2 all
90 - name: Test
91 run: make -C build -j2 test
92 - name: Install
93 run: make -C build -j2 install DESTDIR=.
94 - name: Failed tests log
95 if: ${{ failure() }}
96 run: cat build/Testing/Temporary/LastTest.log || true
97
98 # sanitizer build
99 ci-san:
100 name: ci-dbg (ubuntu-20.04, gnu, cur, sanitizers)
101 runs-on: ubuntu-20.04 #
102 env:
103 ENABLE_SANITIZERS: "address;undefined"
104 steps:
105 - uses: actions/checkout@v2
106 - name: Prepare environment (for cur gnu on ubuntu-20.04)
107 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
108 run: |
109 echo "CC='gcc-9'" >> ${GITHUB_ENV}
110 echo "CXX='g++-9'" >> ${GITHUB_ENV}
111 - name: Install dependencies (Linux)
112 if: runner.os == 'Linux'
113 run: |
114 sudo apt-get install \
115 libevent-dev \
116 libsasl2-dev \
117 ${INSTALL_MEMCACHED} \
118 ${INSTALL_CC} ${INSTALL_CXX}
119 sudo systemctl stop memcached || true
120 - name: Install dependencies (Mac)
121 if: runner.os == 'macOS'
122 run: |
123 brew install bison flex ${INSTALL_MEMCACHED}
124 brew services stop memcached || true
125 echo "MEMCACHED_BINARY='/usr/local/bin/memcached'" >> ${GITHUB_ENV}
126 - name: Build memcached
127 run: |
128 if test -d memcached
129 then
130 cd memcached
131 ./autogen.sh
132 ./configure CFLAGS="-O2 -pipe" \
133 --prefix=${MEMCACHED_PREFIX} \
134 --enable-sasl \
135 --enable-sasl-pwdb \
136 --disable-coverage \
137 --disable-dependency-tracking \
138 --disable-docs \
139 --disable-extstore \
140 --disable-option-checking \
141 ;
142 make -j2
143 make install
144 cd ..
145 echo "MEMCACHED_BINARY='${MEMCACHED_PREFIX}/bin/memcached'" >> ${GITHUB_ENV}
146 fi
147 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
148 run: cmake -S . -B build
149 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
150 run: make -C build -j2 all
151 - name: Test
152 run: make -C build -j2 test
153 - name: Install
154 run: make -C build -j2 install DESTDIR=.
155 - name: Failed tests log
156 if: ${{ failure() }}
157 run: cat build/Testing/Temporary/LastTest.log || true
158
159 # coverage build
160 ci-cov:
161 name: ci-dbg (ubuntu-20.04, gnu, cur, coverage)
162 runs-on: ubuntu-20.04 #
163 env:
164 CFLAGS: -O0 --coverage
165 CXXFLAGS: -O0 --coverage
166 steps:
167 - uses: actions/checkout@v2
168 - name: Prepare environment (for cur gnu on ubuntu-20.04)
169 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
170 run: |
171 echo "CC='gcc-9'" >> ${GITHUB_ENV}
172 echo "CXX='g++-9'" >> ${GITHUB_ENV}
173 - name: Install dependencies (Linux)
174 if: runner.os == 'Linux'
175 run: |
176 sudo apt-get install \
177 libevent-dev \
178 libsasl2-dev \
179 ${INSTALL_MEMCACHED} \
180 ${INSTALL_CC} ${INSTALL_CXX}
181 sudo systemctl stop memcached || true
182 - name: Install dependencies (Mac)
183 if: runner.os == 'macOS'
184 run: |
185 brew install bison flex ${INSTALL_MEMCACHED}
186 brew services stop memcached || true
187 echo "MEMCACHED_BINARY='/usr/local/bin/memcached'" >> ${GITHUB_ENV}
188 - name: Build memcached
189 run: |
190 if test -d memcached
191 then
192 cd memcached
193 ./autogen.sh
194 ./configure CFLAGS="-O2 -pipe" \
195 --prefix=${MEMCACHED_PREFIX} \
196 --enable-sasl \
197 --enable-sasl-pwdb \
198 --disable-coverage \
199 --disable-dependency-tracking \
200 --disable-docs \
201 --disable-extstore \
202 --disable-option-checking \
203 ;
204 make -j2
205 make install
206 cd ..
207 echo "MEMCACHED_BINARY='${MEMCACHED_PREFIX}/bin/memcached'" >> ${GITHUB_ENV}
208 fi
209 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
210 run: cmake -S . -B build
211 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
212 run: make -C build -j2 all
213 - name: Test
214 run: make -C build -j2 test
215 - name: Install
216 run: make -C build -j2 install DESTDIR=.
217 - name: Failed tests log
218 if: ${{ failure() }}
219 run: cat build/Testing/Temporary/LastTest.log || true
220 - uses: codecov/codecov-action@v1.0.13
221
222 # mac build
223 ci-mac:
224 name: ci-dbg (macos-10.15, clang, apple)
225 runs-on: macos-10.15 #
226 continue-on-error: true
227 steps:
228 - uses: actions/checkout@v2
229 - name: Install dependencies (Linux)
230 if: runner.os == 'Linux'
231 run: |
232 sudo apt-get install \
233 libevent-dev \
234 libsasl2-dev \
235 ${INSTALL_MEMCACHED} \
236 ${INSTALL_CC} ${INSTALL_CXX}
237 sudo systemctl stop memcached || true
238 - name: Install dependencies (Mac)
239 if: runner.os == 'macOS'
240 run: |
241 brew install bison flex ${INSTALL_MEMCACHED}
242 brew services stop memcached || true
243 echo "MEMCACHED_BINARY='/usr/local/bin/memcached'" >> ${GITHUB_ENV}
244 - name: Build memcached
245 run: |
246 if test -d memcached
247 then
248 cd memcached
249 ./autogen.sh
250 ./configure CFLAGS="-O2 -pipe" \
251 --prefix=${MEMCACHED_PREFIX} \
252 --enable-sasl \
253 --enable-sasl-pwdb \
254 --disable-coverage \
255 --disable-dependency-tracking \
256 --disable-docs \
257 --disable-extstore \
258 --disable-option-checking \
259 ;
260 make -j2
261 make install
262 cd ..
263 echo "MEMCACHED_BINARY='${MEMCACHED_PREFIX}/bin/memcached'" >> ${GITHUB_ENV}
264 fi
265 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
266 run: cmake -S . -B build
267 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
268 run: make -C build -j2 all
269 - name: Test
270 run: make -C build -j2 test
271 - name: Install
272 run: make -C build -j2 install DESTDIR=.
273 - name: Failed tests log
274 if: ${{ failure() }}
275 run: cat build/Testing/Temporary/LastTest.log || true
276
277 # release builds
278 ci-rel:
279 strategy:
280 fail-fast: false
281 matrix:
282 os_ver: [ubuntu-20.04, ubuntu-18.04]
283 cc_vnd: [gnu, clang]
284 cc_ver: [new, cur, old]
285 runs-on: ${{ matrix.os_ver }}
286 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
287 env:
288 CMAKE_BUILD_TYPE: Release
289 OS_VND: Linux
290 OS_VER: ${{ matrix.os_ver }}
291 CC_VND: ${{ matrix.cc_vnd }}
292 CC_VER: ${{ matrix.cc_ver }}
293 steps:
294 - uses: actions/checkout@v2
295 - name: Prepare environment (for new gnu on ubuntu-20.04)
296 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
297 run: |
298 echo "CC='gcc-10'" >> ${GITHUB_ENV}
299 echo "CXX='g++-10'" >> ${GITHUB_ENV}
300 echo "INSTALL_CC='gcc-10'" >> ${GITHUB_ENV}}
301 echo "INSTALL_CXX='g++-10'" >> ${GITHUB_ENV}}
302 - name: Prepare environment (for cur gnu on ubuntu-20.04)
303 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
304 run: |
305 echo "CC='gcc-9'" >> ${GITHUB_ENV}
306 echo "CXX='g++-9'" >> ${GITHUB_ENV}
307 - name: Prepare environment (for old gnu on ubuntu-20.04)
308 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
309 run: |
310 echo "CC='gcc-8'" >> ${GITHUB_ENV}
311 echo "CXX='g++-8'" >> ${GITHUB_ENV}
312 - name: Prepare environment (for new clang on ubuntu-20.04)
313 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
314 run: |
315 echo "CC='clang-10'" >> ${GITHUB_ENV}
316 echo "CXX='clang++-10'" >> ${GITHUB_ENV}
317 - name: Prepare environment (for cur clang on ubuntu-20.04)
318 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
319 run: |
320 echo "CC='clang-9'" >> ${GITHUB_ENV}
321 echo "CXX='clang++-9'" >> ${GITHUB_ENV}
322 - name: Prepare environment (for old clang on ubuntu-20.04)
323 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
324 run: |
325 echo "CC='clang-8'" >> ${GITHUB_ENV}
326 echo "CXX='clang++-8'" >> ${GITHUB_ENV}
327 - name: Prepare environment (for new gnu on ubuntu-18.04)
328 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
329 run: |
330 echo "CC='gcc-9'" >> ${GITHUB_ENV}
331 echo "CXX='g++-9'" >> ${GITHUB_ENV}
332 - name: Prepare environment (for cur gnu on ubuntu-18.04)
333 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
334 run: |
335 echo "CC='gcc-8'" >> ${GITHUB_ENV}
336 echo "CXX='g++-8'" >> ${GITHUB_ENV}
337 - name: Prepare environment (for old gnu on ubuntu-18.04)
338 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
339 run: |
340 echo "CC='gcc-7'" >> ${GITHUB_ENV}
341 echo "CXX='g++-7'" >> ${GITHUB_ENV}
342 - name: Prepare environment (for new clang on ubuntu-18.04)
343 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
344 run: |
345 echo "CC='clang-9'" >> ${GITHUB_ENV}
346 echo "CXX='clang++-9'" >> ${GITHUB_ENV}
347 - name: Prepare environment (for cur clang on ubuntu-18.04)
348 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
349 run: |
350 echo "CC='clang-8'" >> ${GITHUB_ENV}
351 echo "CXX='clang++-8'" >> ${GITHUB_ENV}
352 - name: Prepare environment (for old clang on ubuntu-18.04)
353 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
354 run: |
355 echo "CC='clang-6.0'" >> ${GITHUB_ENV}
356 echo "CXX='clang++-6.0'" >> ${GITHUB_ENV}
357 echo "CXXFLAGS='-stdlib=libc++'" >> ${GITHUB_ENV}}
358 - name: Install dependencies (Linux)
359 if: runner.os == 'Linux'
360 run: |
361 sudo apt-get install \
362 libevent-dev \
363 libsasl2-dev \
364 ${INSTALL_MEMCACHED} \
365 ${INSTALL_CC} ${INSTALL_CXX}
366 sudo systemctl stop memcached || true
367 - name: Install dependencies (Mac)
368 if: runner.os == 'macOS'
369 run: |
370 brew install bison flex ${INSTALL_MEMCACHED}
371 brew services stop memcached || true
372 echo "MEMCACHED_BINARY='/usr/local/bin/memcached'" >> ${GITHUB_ENV}
373 - name: Build memcached
374 run: |
375 if test -d memcached
376 then
377 cd memcached
378 ./autogen.sh
379 ./configure CFLAGS="-O2 -pipe" \
380 --prefix=${MEMCACHED_PREFIX} \
381 --enable-sasl \
382 --enable-sasl-pwdb \
383 --disable-coverage \
384 --disable-dependency-tracking \
385 --disable-docs \
386 --disable-extstore \
387 --disable-option-checking \
388 ;
389 make -j2
390 make install
391 cd ..
392 echo "MEMCACHED_BINARY='${MEMCACHED_PREFIX}/bin/memcached'" >> ${GITHUB_ENV}
393 fi
394 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
395 run: cmake -S . -B build
396 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
397 run: make -C build -j2 all
398 - name: Test
399 run: make -C build -j2 test
400 - name: Install
401 run: make -C build -j2 install DESTDIR=.
402 - name: Failed tests log
403 if: ${{ failure() }}
404 run: cat build/Testing/Temporary/LastTest.log || true