ci: gh-actions consolidate
[m6w6/libmemcached] / .github / workflows / cmake-build-ci.yml
1 # Generated file; do not edit!
2 name: cmake-build-ci
3 on:
4 push:
5 paths:
6 - "contrib/**"
7 - "include/**"
8 - "src/**"
9 - "test/**"
10 - "CMake*"
11 - "CPack*"
12 - ".github/workflows/cmake-build-ci*"
13 branches-ignore:
14 - gh-pages
15 pull_request:
16 branches:
17 - master
18 - v1.x
19 env:
20 # defaults
21 INSTALL_MEMCACHED: memcached
22 ENABLE_SASL: "OFF" # ^ almost no memcached distribution package has built in sasl support
23 ENABLE_HASH_HSIEH: "ON"
24 ENABLE_DTRACE: "OFF"
25 OS_VND: Linux #
26 OS_VER: ubuntu-20.04 #
27 CC_VND: gnu #
28 CC_VER: cur #
29
30 jobs:
31
32 # new memcached
33 dbg-new:
34 name: dbg-new (ubuntu-20.04, gnu, cur)
35 runs-on: ubuntu-20.04 #
36 env:
37 CMAKE_BUILD_TYPE: "Debug"
38 BUILD_TESTING: "ON"
39 VERBOSE: "ON"
40 CFLAGS: "-O0 --coverage"
41 CXXFLAGS: "-O0 --coverage"
42 INSTALL_MEMCACHED: ""
43 MEMCACHED_PREFIX: "/tmp"
44 ENABLE_SASL: "ON"
45 steps:
46 - uses: actions/checkout@v2
47 - uses: actions/checkout@v2
48 with:
49 repository: memcached/memcached
50 path: memcached
51 ref: 1.6.7
52 - name: Prepare environment (for cur gnu on ubuntu-20.04)
53 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
54 run: |
55 echo CC="gcc-9" >> ${GITHUB_ENV}
56 echo CXX="g++-9" >> ${GITHUB_ENV}
57 - name: Install dependencies (Linux)
58 if: runner.os == 'Linux'
59 run: |
60 sudo apt-get install -my \
61 libevent-dev \
62 libsasl2-dev \
63 libtbb-dev \
64 python3-sphinx \
65 ${INSTALL_MEMCACHED} \
66 ${INSTALL_CC} ${INSTALL_CXX}
67 sudo systemctl stop memcached || true
68 - name: Install dependencies (Mac)
69 if: runner.os == 'macOS'
70 run: |
71 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
72 brew services stop memcached || true
73 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
74 - name: Build memcached
75 run: |
76 if test -d memcached
77 then
78 cd memcached
79 ./autogen.sh
80 ./configure CFLAGS="-O2 -pipe" \
81 --prefix=${MEMCACHED_PREFIX} \
82 --enable-sasl \
83 --enable-sasl-pwdb \
84 --disable-coverage \
85 --disable-dependency-tracking \
86 --disable-docs \
87 --disable-extstore \
88 --disable-option-checking \
89 ;
90 make -j2
91 make install
92 cd ..
93 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
94 fi
95 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
96 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
97 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
98 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
99 - name: Test
100 if: env.BUILD_TESTING == 'ON'
101 run: |
102 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
103 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
104 - name: Failed tests log
105 if: ${{ failure() }}
106 run: cat build/Testing/Temporary/LastTest.log || true
107 - name: Package
108 env:
109 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
110 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
111 run: |
112 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
113 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
114 cmake -DCPACK_COMPONENT_INSTALL=ON build
115 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
116 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
117 - name: Notify Gitter (success)
118 if: ${{ success() && runner.os!='Windows'}}
119 run: |
120 REF=$(basename ${GITHUB_REF})
121 curl -sS "${{ secrets.GITTER }}" \
122 --data-urlencode "level=info" \
123 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
124 - name: Notify Gitter (failure)
125 if: ${{ failure() && runner.os!='Windows'}}
126 run: |
127 REF=$(basename ${GITHUB_REF})
128 curl -sS "${{ secrets.GITTER }}" \
129 --data-urlencode "level=error" \
130 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
131 - uses: codecov/codecov-action@v1.0.13
132
133 # sanitizer build
134 dbg-san:
135 name: dbg-san (ubuntu-20.04, gnu, cur)
136 runs-on: ubuntu-20.04 #
137 env:
138 CMAKE_BUILD_TYPE: "Debug"
139 BUILD_TESTING: "ON"
140 VERBOSE: "ON"
141 ENABLE_SANITIZERS: "address;undefined"
142 steps:
143 - uses: actions/checkout@v2
144 - name: Prepare environment (for cur gnu on ubuntu-20.04)
145 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
146 run: |
147 echo CC="gcc-9" >> ${GITHUB_ENV}
148 echo CXX="g++-9" >> ${GITHUB_ENV}
149 - name: Install dependencies (Linux)
150 if: runner.os == 'Linux'
151 run: |
152 sudo apt-get install -my \
153 libevent-dev \
154 libsasl2-dev \
155 libtbb-dev \
156 python3-sphinx \
157 ${INSTALL_MEMCACHED} \
158 ${INSTALL_CC} ${INSTALL_CXX}
159 sudo systemctl stop memcached || true
160 - name: Install dependencies (Mac)
161 if: runner.os == 'macOS'
162 run: |
163 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
164 brew services stop memcached || true
165 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
166 - name: Build memcached
167 run: |
168 if test -d memcached
169 then
170 cd memcached
171 ./autogen.sh
172 ./configure CFLAGS="-O2 -pipe" \
173 --prefix=${MEMCACHED_PREFIX} \
174 --enable-sasl \
175 --enable-sasl-pwdb \
176 --disable-coverage \
177 --disable-dependency-tracking \
178 --disable-docs \
179 --disable-extstore \
180 --disable-option-checking \
181 ;
182 make -j2
183 make install
184 cd ..
185 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
186 fi
187 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
188 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
189 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
190 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
191 - name: Test
192 if: env.BUILD_TESTING == 'ON'
193 run: |
194 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
195 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
196 - name: Failed tests log
197 if: ${{ failure() }}
198 run: cat build/Testing/Temporary/LastTest.log || true
199 - name: Package
200 env:
201 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
202 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
203 run: |
204 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
205 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
206 cmake -DCPACK_COMPONENT_INSTALL=ON build
207 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
208 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
209 - name: Notify Gitter (success)
210 if: ${{ success() && runner.os!='Windows'}}
211 run: |
212 REF=$(basename ${GITHUB_REF})
213 curl -sS "${{ secrets.GITTER }}" \
214 --data-urlencode "level=info" \
215 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
216 - name: Notify Gitter (failure)
217 if: ${{ failure() && runner.os!='Windows'}}
218 run: |
219 REF=$(basename ${GITHUB_REF})
220 curl -sS "${{ secrets.GITTER }}" \
221 --data-urlencode "level=error" \
222 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
223
224 # thread sanitizer build
225 dbg-tsan:
226 name: dbg-tsan (ubuntu-20.04, gnu, cur)
227 runs-on: ubuntu-20.04 #
228 env:
229 CMAKE_BUILD_TYPE: "Debug"
230 BUILD_TESTING: "ON"
231 VERBOSE: "ON"
232 ENABLE_SANITIZERS: "thread"
233 steps:
234 - uses: actions/checkout@v2
235 - name: Prepare environment (for cur gnu on ubuntu-20.04)
236 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
237 run: |
238 echo CC="gcc-9" >> ${GITHUB_ENV}
239 echo CXX="g++-9" >> ${GITHUB_ENV}
240 - name: Install dependencies (Linux)
241 if: runner.os == 'Linux'
242 run: |
243 sudo apt-get install -my \
244 libevent-dev \
245 libsasl2-dev \
246 libtbb-dev \
247 python3-sphinx \
248 ${INSTALL_MEMCACHED} \
249 ${INSTALL_CC} ${INSTALL_CXX}
250 sudo systemctl stop memcached || true
251 - name: Install dependencies (Mac)
252 if: runner.os == 'macOS'
253 run: |
254 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
255 brew services stop memcached || true
256 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
257 - name: Build memcached
258 run: |
259 if test -d memcached
260 then
261 cd memcached
262 ./autogen.sh
263 ./configure CFLAGS="-O2 -pipe" \
264 --prefix=${MEMCACHED_PREFIX} \
265 --enable-sasl \
266 --enable-sasl-pwdb \
267 --disable-coverage \
268 --disable-dependency-tracking \
269 --disable-docs \
270 --disable-extstore \
271 --disable-option-checking \
272 ;
273 make -j2
274 make install
275 cd ..
276 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
277 fi
278 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
279 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
280 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
281 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
282 - name: Test
283 if: env.BUILD_TESTING == 'ON'
284 run: |
285 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
286 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
287 - name: Failed tests log
288 if: ${{ failure() }}
289 run: cat build/Testing/Temporary/LastTest.log || true
290 - name: Package
291 env:
292 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
293 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
294 run: |
295 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
296 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
297 cmake -DCPACK_COMPONENT_INSTALL=ON build
298 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
299 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
300 - name: Notify Gitter (success)
301 if: ${{ success() && runner.os!='Windows'}}
302 run: |
303 REF=$(basename ${GITHUB_REF})
304 curl -sS "${{ secrets.GITTER }}" \
305 --data-urlencode "level=info" \
306 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
307 - name: Notify Gitter (failure)
308 if: ${{ failure() && runner.os!='Windows'}}
309 run: |
310 REF=$(basename ${GITHUB_REF})
311 curl -sS "${{ secrets.GITTER }}" \
312 --data-urlencode "level=error" \
313 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
314
315 # mac debug
316 dbg-mac:
317 name: dbg-mac (macos-10.15, clang, cur)
318 runs-on: macos-10.15 #
319 env:
320 CMAKE_BUILD_TYPE: "Debug"
321 BUILD_TESTING: "ON"
322 VERBOSE: "ON"
323 CFLAGS: "-O0 --coverage"
324 CXXFLAGS: "-O0 --coverage"
325 OS_VND: macOS #
326 OS_VER: macos-10.15 #
327 CC_VND: clang #
328 CC_VER: cur #
329 #
330 continue-on-error: true
331 steps:
332 - uses: actions/checkout@v2
333 - name: Install dependencies (Linux)
334 if: runner.os == 'Linux'
335 run: |
336 sudo apt-get install -my \
337 libevent-dev \
338 libsasl2-dev \
339 libtbb-dev \
340 python3-sphinx \
341 ${INSTALL_MEMCACHED} \
342 ${INSTALL_CC} ${INSTALL_CXX}
343 sudo systemctl stop memcached || true
344 - name: Install dependencies (Mac)
345 if: runner.os == 'macOS'
346 run: |
347 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
348 brew services stop memcached || true
349 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
350 - name: Build memcached
351 run: |
352 if test -d memcached
353 then
354 cd memcached
355 ./autogen.sh
356 ./configure CFLAGS="-O2 -pipe" \
357 --prefix=${MEMCACHED_PREFIX} \
358 --enable-sasl \
359 --enable-sasl-pwdb \
360 --disable-coverage \
361 --disable-dependency-tracking \
362 --disable-docs \
363 --disable-extstore \
364 --disable-option-checking \
365 ;
366 make -j2
367 make install
368 cd ..
369 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
370 fi
371 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
372 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
373 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
374 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
375 - name: Test
376 if: env.BUILD_TESTING == 'ON'
377 run: |
378 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
379 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
380 - name: Failed tests log
381 if: ${{ failure() }}
382 run: cat build/Testing/Temporary/LastTest.log || true
383 - name: Package
384 env:
385 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
386 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
387 run: |
388 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
389 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
390 cmake -DCPACK_COMPONENT_INSTALL=ON build
391 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
392 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
393 - name: Notify Gitter (success)
394 if: ${{ success() && runner.os!='Windows'}}
395 run: |
396 REF=$(basename ${GITHUB_REF})
397 curl -sS "${{ secrets.GITTER }}" \
398 --data-urlencode "level=info" \
399 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
400 - name: Notify Gitter (failure)
401 if: ${{ failure() && runner.os!='Windows'}}
402 run: |
403 REF=$(basename ${GITHUB_REF})
404 curl -sS "${{ secrets.GITTER }}" \
405 --data-urlencode "level=error" \
406 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
407 - uses: codecov/codecov-action@v1.0.13
408
409 # mac release
410 rel-mac:
411 name: rel-mac (macos-10.15, clang, cur)
412 runs-on: macos-10.15 #
413 env:
414 CMAKE_BUILD_TYPE: "Release"
415 BUILD_DOCS_MANGZ: "ON"
416 OS_VND: macOS #
417 OS_VER: macos-10.15 #
418 CC_VND: clang #
419 CC_VER: cur #
420 continue-on-error: true
421 steps:
422 - uses: actions/checkout@v2
423 with:
424 fetch-depth: 0
425 - name: Install dependencies (Linux)
426 if: runner.os == 'Linux'
427 run: |
428 sudo apt-get install -my \
429 libevent-dev \
430 libsasl2-dev \
431 libtbb-dev \
432 python3-sphinx \
433 ${INSTALL_MEMCACHED} \
434 ${INSTALL_CC} ${INSTALL_CXX}
435 sudo systemctl stop memcached || true
436 - name: Install dependencies (Mac)
437 if: runner.os == 'macOS'
438 run: |
439 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
440 brew services stop memcached || true
441 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
442 - name: Build memcached
443 run: |
444 if test -d memcached
445 then
446 cd memcached
447 ./autogen.sh
448 ./configure CFLAGS="-O2 -pipe" \
449 --prefix=${MEMCACHED_PREFIX} \
450 --enable-sasl \
451 --enable-sasl-pwdb \
452 --disable-coverage \
453 --disable-dependency-tracking \
454 --disable-docs \
455 --disable-extstore \
456 --disable-option-checking \
457 ;
458 make -j2
459 make install
460 cd ..
461 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
462 fi
463 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
464 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
465 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
466 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
467 - name: Test
468 if: env.BUILD_TESTING == 'ON'
469 run: |
470 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
471 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
472 - name: Failed tests log
473 if: ${{ failure() }}
474 run: cat build/Testing/Temporary/LastTest.log || true
475 - name: Package
476 env:
477 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
478 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
479 run: |
480 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
481 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
482 cmake -DCPACK_COMPONENT_INSTALL=ON build
483 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
484 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
485 - name: Notify Gitter (success)
486 if: ${{ success() && runner.os!='Windows'}}
487 run: |
488 REF=$(basename ${GITHUB_REF})
489 curl -sS "${{ secrets.GITTER }}" \
490 --data-urlencode "level=info" \
491 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
492 - name: Notify Gitter (failure)
493 if: ${{ failure() && runner.os!='Windows'}}
494 run: |
495 REF=$(basename ${GITHUB_REF})
496 curl -sS "${{ secrets.GITTER }}" \
497 --data-urlencode "level=error" \
498 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
499
500 # win build
501 win-msvc:
502 name: win-msvc (windows-2019, msvc, cur)
503 runs-on: windows-2019 #
504 env:
505 CMAKE_BUILD_TYPE: "Release"
506 BISON_ROOT: "C:/msys64/usr"
507 FLEX_ROOT: "C:/msys64/usr"
508 OS_VND: Windows #
509 OS_VER: windows-2019 #
510 CC_VND: msvc #
511 CC_VER: cur #
512 continue-on-error: true
513 steps:
514 - uses: actions/checkout@v2
515 with:
516 fetch-depth: 0
517 - uses: msys2/setup-msys2@v2
518 with:
519 release: false
520 path-type: inherit
521 install: >-
522 rsync
523 openssh
524 - name: Install dependencies (Linux)
525 if: runner.os == 'Linux'
526 run: |
527 sudo apt-get install -my \
528 libevent-dev \
529 libsasl2-dev \
530 libtbb-dev \
531 python3-sphinx \
532 ${INSTALL_MEMCACHED} \
533 ${INSTALL_CC} ${INSTALL_CXX}
534 sudo systemctl stop memcached || true
535 - name: Install dependencies (Mac)
536 if: runner.os == 'macOS'
537 run: |
538 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
539 brew services stop memcached || true
540 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
541 - name: Build memcached
542 run: |
543 if test -d memcached
544 then
545 cd memcached
546 ./autogen.sh
547 ./configure CFLAGS="-O2 -pipe" \
548 --prefix=${MEMCACHED_PREFIX} \
549 --enable-sasl \
550 --enable-sasl-pwdb \
551 --disable-coverage \
552 --disable-dependency-tracking \
553 --disable-docs \
554 --disable-extstore \
555 --disable-option-checking \
556 ;
557 make -j2
558 make install
559 cd ..
560 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
561 fi
562 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
563 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
564 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
565 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
566 - name: Test
567 if: env.BUILD_TESTING == 'ON'
568 run: |
569 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
570 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
571 - name: Failed tests log
572 if: ${{ failure() }}
573 run: cat build/Testing/Temporary/LastTest.log || true
574 - name: Package
575 env:
576 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
577 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
578 run: |
579 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
580 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
581 cmake -DCPACK_COMPONENT_INSTALL=ON build
582 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
583 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
584 - name: Notify Gitter (success)
585 if: ${{ success() && runner.os!='Windows'}}
586 run: |
587 REF=$(basename ${GITHUB_REF})
588 curl -sS "${{ secrets.GITTER }}" \
589 --data-urlencode "level=info" \
590 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
591 - name: Notify Gitter (failure)
592 if: ${{ failure() && runner.os!='Windows'}}
593 run: |
594 REF=$(basename ${GITHUB_REF})
595 curl -sS "${{ secrets.GITTER }}" \
596 --data-urlencode "level=error" \
597 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
598
599 # linux release builds
600 release:
601 strategy:
602 fail-fast: false
603 matrix:
604 os_ver: [ubuntu-20.04, ubuntu-18.04]
605 cc_vnd: [gnu, clang]
606 cc_ver: [new, cur, old]
607 runs-on: ${{ matrix.os_ver }}
608 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
609 env:
610 CMAKE_BUILD_TYPE: "Release"
611 BUILD_DOCS_MANGZ: "ON"
612 OS_VND: Linux
613 OS_VER: ${{ matrix.os_ver }}
614 CC_VND: ${{ matrix.cc_vnd }}
615 CC_VER: ${{ matrix.cc_ver }}
616 steps:
617 - uses: actions/checkout@v2
618 with:
619 fetch-depth: 0
620 - name: Prepare environment (for new gnu on ubuntu-20.04)
621 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
622 run: |
623 echo CC="gcc-10" >> ${GITHUB_ENV}
624 echo CXX="g++-10" >> ${GITHUB_ENV}
625 echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
626 echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
627 - name: Prepare environment (for cur gnu on ubuntu-20.04)
628 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
629 run: |
630 echo CC="gcc-9" >> ${GITHUB_ENV}
631 echo CXX="g++-9" >> ${GITHUB_ENV}
632 - name: Prepare environment (for old gnu on ubuntu-20.04)
633 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
634 run: |
635 echo CC="gcc-8" >> ${GITHUB_ENV}
636 echo CXX="g++-8" >> ${GITHUB_ENV}
637 - name: Prepare environment (for new clang on ubuntu-20.04)
638 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
639 run: |
640 echo CC="clang-10" >> ${GITHUB_ENV}
641 echo CXX="clang++-10" >> ${GITHUB_ENV}
642 - name: Prepare environment (for cur clang on ubuntu-20.04)
643 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
644 run: |
645 echo CC="clang-9" >> ${GITHUB_ENV}
646 echo CXX="clang++-9" >> ${GITHUB_ENV}
647 - name: Prepare environment (for old clang on ubuntu-20.04)
648 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
649 run: |
650 echo CC="clang-8" >> ${GITHUB_ENV}
651 echo CXX="clang++-8" >> ${GITHUB_ENV}
652 - name: Prepare environment (for new gnu on ubuntu-18.04)
653 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
654 run: |
655 echo CC="gcc-9" >> ${GITHUB_ENV}
656 echo CXX="g++-9" >> ${GITHUB_ENV}
657 - name: Prepare environment (for cur gnu on ubuntu-18.04)
658 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
659 run: |
660 echo CC="gcc-8" >> ${GITHUB_ENV}
661 echo CXX="g++-8" >> ${GITHUB_ENV}
662 - name: Prepare environment (for old gnu on ubuntu-18.04)
663 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
664 run: |
665 echo CC="gcc-7" >> ${GITHUB_ENV}
666 echo CXX="g++-7" >> ${GITHUB_ENV}
667 - name: Prepare environment (for new clang on ubuntu-18.04)
668 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
669 run: |
670 echo CC="clang-9" >> ${GITHUB_ENV}
671 echo CXX="clang++-9" >> ${GITHUB_ENV}
672 - name: Prepare environment (for cur clang on ubuntu-18.04)
673 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
674 run: |
675 echo CC="clang-8" >> ${GITHUB_ENV}
676 echo CXX="clang++-8" >> ${GITHUB_ENV}
677 - name: Prepare environment (for old clang on ubuntu-18.04)
678 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
679 run: |
680 echo CC="clang-6.0" >> ${GITHUB_ENV}
681 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
682 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
683 - name: Prepare environment (for cur msvc on windows-2019)
684 if: (env.OS_VER=='windows-2019') && (env.CC_VND=='msvc') && (env.CC_VER=='cur')
685 run: |
686 echo CC="msvc2019" >> ${GITHUB_ENV}
687 echo CXX="msvc2019" >> ${GITHUB_ENV}
688 - name: Install dependencies (Linux)
689 if: runner.os == 'Linux'
690 run: |
691 sudo apt-get install -my \
692 libevent-dev \
693 libsasl2-dev \
694 libtbb-dev \
695 python3-sphinx \
696 ${INSTALL_MEMCACHED} \
697 ${INSTALL_CC} ${INSTALL_CXX}
698 sudo systemctl stop memcached || true
699 - name: Install dependencies (Mac)
700 if: runner.os == 'macOS'
701 run: |
702 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
703 brew services stop memcached || true
704 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
705 - name: Build memcached
706 run: |
707 if test -d memcached
708 then
709 cd memcached
710 ./autogen.sh
711 ./configure CFLAGS="-O2 -pipe" \
712 --prefix=${MEMCACHED_PREFIX} \
713 --enable-sasl \
714 --enable-sasl-pwdb \
715 --disable-coverage \
716 --disable-dependency-tracking \
717 --disable-docs \
718 --disable-extstore \
719 --disable-option-checking \
720 ;
721 make -j2
722 make install
723 cd ..
724 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
725 fi
726 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
727 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
728 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
729 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
730 - name: Test
731 if: env.BUILD_TESTING == 'ON'
732 run: |
733 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
734 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
735 - name: Failed tests log
736 if: ${{ failure() }}
737 run: cat build/Testing/Temporary/LastTest.log || true
738 - name: Package
739 env:
740 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
741 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
742 run: |
743 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
744 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
745 cmake -DCPACK_COMPONENT_INSTALL=ON build
746 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
747 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
748 - name: Notify Gitter (success)
749 if: ${{ success() && runner.os!='Windows'}}
750 run: |
751 REF=$(basename ${GITHUB_REF})
752 curl -sS "${{ secrets.GITTER }}" \
753 --data-urlencode "level=info" \
754 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
755 - name: Notify Gitter (failure)
756 if: ${{ failure() && runner.os!='Windows'}}
757 run: |
758 REF=$(basename ${GITHUB_REF})
759 curl -sS "${{ secrets.GITTER }}" \
760 --data-urlencode "level=error" \
761 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"