1 # Generated file; do not edit!
12 - ".github/workflows/cmake-build-ci*"
21 INSTALL_MEMCACHED: memcached
22 ENABLE_SASL: "OFF" # ^ almost no memcached distribution package has built in sasl support
23 ENABLE_HASH_HSIEH: "ON"
26 OS_VER: ubuntu-20.04 #
34 name: dbg-new (ubuntu-20.04, gnu, cur)
35 runs-on: ubuntu-20.04 #
37 CMAKE_BUILD_TYPE: "Debug"
40 CFLAGS: "-O0 --coverage"
41 CXXFLAGS: "-O0 --coverage"
43 MEMCACHED_PREFIX: "/tmp"
46 - uses: actions/checkout@v2
47 - uses: actions/checkout@v2
49 repository: memcached/memcached
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')
55 echo CC="gcc-9" >> ${GITHUB_ENV}
56 echo CXX="g++-9" >> ${GITHUB_ENV}
57 - name: Install dependencies (Linux)
58 if: runner.os == 'Linux'
60 sudo apt-get install -my \
65 ${INSTALL_MEMCACHED} \
66 ${INSTALL_CC} ${INSTALL_CXX}
67 sudo systemctl stop memcached || true
68 - name: Install dependencies (Mac)
69 if: runner.os == 'macOS'
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 if: runner.os != 'Windows'
81 ./configure CFLAGS="-O2 -pipe" \
82 --prefix=${MEMCACHED_PREFIX} \
86 --disable-dependency-tracking \
89 --disable-option-checking \
94 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
96 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
97 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
98 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
99 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
101 if: env.BUILD_TESTING == 'ON'
103 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
104 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
105 - name: Failed tests log
107 run: cat build/Testing/Temporary/LastTest.log || true
110 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
111 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
113 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
114 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
115 cmake -DCPACK_COMPONENT_INSTALL=ON build
116 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
117 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
118 - name: Notify Gitter (success)
119 if: ${{ success() && runner.os != 'Windows'}}
121 REF=$(basename ${GITHUB_REF})
122 curl -sS "${{ secrets.GITTER }}" \
123 --data-urlencode "level=info" \
124 --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}})"
125 - name: Notify Gitter (failure)
126 if: ${{ failure() && runner.os!='Windows'}}
128 REF=$(basename ${GITHUB_REF})
129 curl -sS "${{ secrets.GITTER }}" \
130 --data-urlencode "level=error" \
131 --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}})"
132 - uses: codecov/codecov-action@v1.0.13
136 name: dbg-san (ubuntu-20.04, gnu, cur)
137 runs-on: ubuntu-20.04 #
139 CMAKE_BUILD_TYPE: "Debug"
142 ENABLE_SANITIZERS: "address;undefined"
144 - uses: actions/checkout@v2
145 - name: Prepare environment (for cur gnu on ubuntu-20.04)
146 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
148 echo CC="gcc-9" >> ${GITHUB_ENV}
149 echo CXX="g++-9" >> ${GITHUB_ENV}
150 - name: Install dependencies (Linux)
151 if: runner.os == 'Linux'
153 sudo apt-get install -my \
158 ${INSTALL_MEMCACHED} \
159 ${INSTALL_CC} ${INSTALL_CXX}
160 sudo systemctl stop memcached || true
161 - name: Install dependencies (Mac)
162 if: runner.os == 'macOS'
164 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
165 brew services stop memcached || true
166 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
167 - name: Build memcached
168 if: runner.os != 'Windows'
174 ./configure CFLAGS="-O2 -pipe" \
175 --prefix=${MEMCACHED_PREFIX} \
179 --disable-dependency-tracking \
182 --disable-option-checking \
187 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
189 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
190 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
191 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
192 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
194 if: env.BUILD_TESTING == 'ON'
196 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
197 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
198 - name: Failed tests log
200 run: cat build/Testing/Temporary/LastTest.log || true
203 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
204 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
206 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
207 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
208 cmake -DCPACK_COMPONENT_INSTALL=ON build
209 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
210 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
211 - name: Notify Gitter (success)
212 if: ${{ success() && runner.os != 'Windows'}}
214 REF=$(basename ${GITHUB_REF})
215 curl -sS "${{ secrets.GITTER }}" \
216 --data-urlencode "level=info" \
217 --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}})"
218 - name: Notify Gitter (failure)
219 if: ${{ failure() && runner.os!='Windows'}}
221 REF=$(basename ${GITHUB_REF})
222 curl -sS "${{ secrets.GITTER }}" \
223 --data-urlencode "level=error" \
224 --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}})"
226 # thread sanitizer build
228 name: dbg-tsan (ubuntu-20.04, gnu, cur)
229 runs-on: ubuntu-20.04 #
231 CMAKE_BUILD_TYPE: "Debug"
234 ENABLE_SANITIZERS: "thread"
236 - uses: actions/checkout@v2
237 - name: Prepare environment (for cur gnu on ubuntu-20.04)
238 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
240 echo CC="gcc-9" >> ${GITHUB_ENV}
241 echo CXX="g++-9" >> ${GITHUB_ENV}
242 - name: Install dependencies (Linux)
243 if: runner.os == 'Linux'
245 sudo apt-get install -my \
250 ${INSTALL_MEMCACHED} \
251 ${INSTALL_CC} ${INSTALL_CXX}
252 sudo systemctl stop memcached || true
253 - name: Install dependencies (Mac)
254 if: runner.os == 'macOS'
256 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
257 brew services stop memcached || true
258 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
259 - name: Build memcached
260 if: runner.os != 'Windows'
266 ./configure CFLAGS="-O2 -pipe" \
267 --prefix=${MEMCACHED_PREFIX} \
271 --disable-dependency-tracking \
274 --disable-option-checking \
279 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
281 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
282 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
283 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
284 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
286 if: env.BUILD_TESTING == 'ON'
288 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
289 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
290 - name: Failed tests log
292 run: cat build/Testing/Temporary/LastTest.log || true
295 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
296 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
298 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
299 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
300 cmake -DCPACK_COMPONENT_INSTALL=ON build
301 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
302 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
303 - name: Notify Gitter (success)
304 if: ${{ success() && runner.os != 'Windows'}}
306 REF=$(basename ${GITHUB_REF})
307 curl -sS "${{ secrets.GITTER }}" \
308 --data-urlencode "level=info" \
309 --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}})"
310 - name: Notify Gitter (failure)
311 if: ${{ failure() && runner.os!='Windows'}}
313 REF=$(basename ${GITHUB_REF})
314 curl -sS "${{ secrets.GITTER }}" \
315 --data-urlencode "level=error" \
316 --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}})"
320 name: dbg-mac (macos-10.15, clang, cur)
321 runs-on: macos-10.15 #
323 CMAKE_BUILD_TYPE: "Debug"
326 CFLAGS: "-O0 --coverage"
327 CXXFLAGS: "-O0 --coverage"
329 OS_VER: macos-10.15 #
333 continue-on-error: true
335 - uses: actions/checkout@v2
336 - name: Install dependencies (Linux)
337 if: runner.os == 'Linux'
339 sudo apt-get install -my \
344 ${INSTALL_MEMCACHED} \
345 ${INSTALL_CC} ${INSTALL_CXX}
346 sudo systemctl stop memcached || true
347 - name: Install dependencies (Mac)
348 if: runner.os == 'macOS'
350 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
351 brew services stop memcached || true
352 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
353 - name: Build memcached
354 if: runner.os != 'Windows'
360 ./configure CFLAGS="-O2 -pipe" \
361 --prefix=${MEMCACHED_PREFIX} \
365 --disable-dependency-tracking \
368 --disable-option-checking \
373 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
375 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
376 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
377 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
378 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
380 if: env.BUILD_TESTING == 'ON'
382 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
383 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
384 - name: Failed tests log
386 run: cat build/Testing/Temporary/LastTest.log || true
389 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
390 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
392 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
393 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
394 cmake -DCPACK_COMPONENT_INSTALL=ON build
395 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
396 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
397 - name: Notify Gitter (success)
398 if: ${{ success() && runner.os != 'Windows'}}
400 REF=$(basename ${GITHUB_REF})
401 curl -sS "${{ secrets.GITTER }}" \
402 --data-urlencode "level=info" \
403 --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}})"
404 - name: Notify Gitter (failure)
405 if: ${{ failure() && runner.os!='Windows'}}
407 REF=$(basename ${GITHUB_REF})
408 curl -sS "${{ secrets.GITTER }}" \
409 --data-urlencode "level=error" \
410 --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}})"
411 - uses: codecov/codecov-action@v1.0.13
415 name: rel-mac (macos-10.15, clang, cur)
416 runs-on: macos-10.15 #
418 CMAKE_BUILD_TYPE: "Release"
419 BUILD_DOCS_MANGZ: "ON"
421 OS_VER: macos-10.15 #
424 continue-on-error: true
426 - uses: actions/checkout@v2
429 - name: Install dependencies (Linux)
430 if: runner.os == 'Linux'
432 sudo apt-get install -my \
437 ${INSTALL_MEMCACHED} \
438 ${INSTALL_CC} ${INSTALL_CXX}
439 sudo systemctl stop memcached || true
440 - name: Install dependencies (Mac)
441 if: runner.os == 'macOS'
443 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
444 brew services stop memcached || true
445 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
446 - name: Build memcached
447 if: runner.os != 'Windows'
453 ./configure CFLAGS="-O2 -pipe" \
454 --prefix=${MEMCACHED_PREFIX} \
458 --disable-dependency-tracking \
461 --disable-option-checking \
466 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
468 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
469 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
470 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
471 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
473 if: env.BUILD_TESTING == 'ON'
475 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
476 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
477 - name: Failed tests log
479 run: cat build/Testing/Temporary/LastTest.log || true
482 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
483 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
485 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
486 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
487 cmake -DCPACK_COMPONENT_INSTALL=ON build
488 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
489 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
490 - name: Notify Gitter (success)
491 if: ${{ success() && runner.os != 'Windows'}}
493 REF=$(basename ${GITHUB_REF})
494 curl -sS "${{ secrets.GITTER }}" \
495 --data-urlencode "level=info" \
496 --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}})"
497 - name: Notify Gitter (failure)
498 if: ${{ failure() && runner.os!='Windows'}}
500 REF=$(basename ${GITHUB_REF})
501 curl -sS "${{ secrets.GITTER }}" \
502 --data-urlencode "level=error" \
503 --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}})"
507 name: win-msvc (windows-2019, msvc, cur)
508 runs-on: windows-2019 #
510 CMAKE_BUILD_TYPE: "Release"
511 BISON_ROOT: "C:/msys64/usr"
512 FLEX_ROOT: "C:/msys64/usr"
514 OS_VER: windows-2019 #
517 continue-on-error: true
519 - uses: actions/checkout@v2
522 - uses: msys2/setup-msys2@v2
529 - name: Install dependencies (Linux)
530 if: runner.os == 'Linux'
532 sudo apt-get install -my \
537 ${INSTALL_MEMCACHED} \
538 ${INSTALL_CC} ${INSTALL_CXX}
539 sudo systemctl stop memcached || true
540 - name: Install dependencies (Mac)
541 if: runner.os == 'macOS'
543 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
544 brew services stop memcached || true
545 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
546 - name: Build memcached
547 if: runner.os != 'Windows'
553 ./configure CFLAGS="-O2 -pipe" \
554 --prefix=${MEMCACHED_PREFIX} \
558 --disable-dependency-tracking \
561 --disable-option-checking \
566 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
568 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
569 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
570 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
571 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
573 if: env.BUILD_TESTING == 'ON'
575 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
576 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
577 - name: Failed tests log
579 run: cat build/Testing/Temporary/LastTest.log || true
582 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
583 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
585 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
586 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
587 cmake -DCPACK_COMPONENT_INSTALL=ON build
588 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
589 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
590 - name: Notify Gitter (success)
591 if: ${{ success() && runner.os != 'Windows'}}
593 REF=$(basename ${GITHUB_REF})
594 curl -sS "${{ secrets.GITTER }}" \
595 --data-urlencode "level=info" \
596 --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}})"
597 - name: Notify Gitter (failure)
598 if: ${{ failure() && runner.os!='Windows'}}
600 REF=$(basename ${GITHUB_REF})
601 curl -sS "${{ secrets.GITTER }}" \
602 --data-urlencode "level=error" \
603 --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}})"
605 # linux release builds
610 os_ver: [ubuntu-20.04, ubuntu-18.04]
612 cc_ver: [new, cur, old]
613 runs-on: ${{ matrix.os_ver }}
614 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
616 CMAKE_BUILD_TYPE: "Release"
617 BUILD_DOCS_MANGZ: "ON"
619 OS_VER: ${{ matrix.os_ver }}
620 CC_VND: ${{ matrix.cc_vnd }}
621 CC_VER: ${{ matrix.cc_ver }}
623 - uses: actions/checkout@v2
626 - name: Prepare environment (for new gnu on ubuntu-20.04)
627 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
629 echo CC="gcc-10" >> ${GITHUB_ENV}
630 echo CXX="g++-10" >> ${GITHUB_ENV}
631 echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
632 echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
633 - name: Prepare environment (for cur gnu on ubuntu-20.04)
634 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
636 echo CC="gcc-9" >> ${GITHUB_ENV}
637 echo CXX="g++-9" >> ${GITHUB_ENV}
638 - name: Prepare environment (for old gnu on ubuntu-20.04)
639 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
641 echo CC="gcc-8" >> ${GITHUB_ENV}
642 echo CXX="g++-8" >> ${GITHUB_ENV}
643 - name: Prepare environment (for new clang on ubuntu-20.04)
644 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
646 echo CC="clang-10" >> ${GITHUB_ENV}
647 echo CXX="clang++-10" >> ${GITHUB_ENV}
648 - name: Prepare environment (for cur clang on ubuntu-20.04)
649 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
651 echo CC="clang-9" >> ${GITHUB_ENV}
652 echo CXX="clang++-9" >> ${GITHUB_ENV}
653 - name: Prepare environment (for old clang on ubuntu-20.04)
654 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
656 echo CC="clang-8" >> ${GITHUB_ENV}
657 echo CXX="clang++-8" >> ${GITHUB_ENV}
658 - name: Prepare environment (for new gnu on ubuntu-18.04)
659 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
661 echo CC="gcc-9" >> ${GITHUB_ENV}
662 echo CXX="g++-9" >> ${GITHUB_ENV}
663 - name: Prepare environment (for cur gnu on ubuntu-18.04)
664 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
666 echo CC="gcc-8" >> ${GITHUB_ENV}
667 echo CXX="g++-8" >> ${GITHUB_ENV}
668 - name: Prepare environment (for old gnu on ubuntu-18.04)
669 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
671 echo CC="gcc-7" >> ${GITHUB_ENV}
672 echo CXX="g++-7" >> ${GITHUB_ENV}
673 - name: Prepare environment (for new clang on ubuntu-18.04)
674 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
676 echo CC="clang-9" >> ${GITHUB_ENV}
677 echo CXX="clang++-9" >> ${GITHUB_ENV}
678 - name: Prepare environment (for cur clang on ubuntu-18.04)
679 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
681 echo CC="clang-8" >> ${GITHUB_ENV}
682 echo CXX="clang++-8" >> ${GITHUB_ENV}
683 - name: Prepare environment (for old clang on ubuntu-18.04)
684 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
686 echo CC="clang-6.0" >> ${GITHUB_ENV}
687 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
688 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
689 - name: Prepare environment (for cur msvc on windows-2019)
690 if: (env.OS_VER=='windows-2019') && (env.CC_VND=='msvc') && (env.CC_VER=='cur')
692 echo CC="msvc2019" >> ${GITHUB_ENV}
693 echo CXX="msvc2019" >> ${GITHUB_ENV}
694 - name: Install dependencies (Linux)
695 if: runner.os == 'Linux'
697 sudo apt-get install -my \
702 ${INSTALL_MEMCACHED} \
703 ${INSTALL_CC} ${INSTALL_CXX}
704 sudo systemctl stop memcached || true
705 - name: Install dependencies (Mac)
706 if: runner.os == 'macOS'
708 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
709 brew services stop memcached || true
710 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
711 - name: Build memcached
712 if: runner.os != 'Windows'
718 ./configure CFLAGS="-O2 -pipe" \
719 --prefix=${MEMCACHED_PREFIX} \
723 --disable-dependency-tracking \
726 --disable-option-checking \
731 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
733 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
734 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
735 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
736 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
738 if: env.BUILD_TESTING == 'ON'
740 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
741 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target install -- DESTDIR=/tmp
742 - name: Failed tests log
744 run: cat build/Testing/Temporary/LastTest.log || true
747 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
748 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
750 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
751 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
752 cmake -DCPACK_COMPONENT_INSTALL=ON build
753 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package -- VERBOSE=
754 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts -- VERBOSE=
755 - name: Notify Gitter (success)
756 if: ${{ success() && runner.os != 'Windows'}}
758 REF=$(basename ${GITHUB_REF})
759 curl -sS "${{ secrets.GITTER }}" \
760 --data-urlencode "level=info" \
761 --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}})"
762 - name: Notify Gitter (failure)
763 if: ${{ failure() && runner.os!='Windows'}}
765 REF=$(basename ${GITHUB_REF})
766 curl -sS "${{ secrets.GITTER }}" \
767 --data-urlencode "level=error" \
768 --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}})"