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
80 ./configure CFLAGS="-O2 -pipe" \
81 --prefix=${MEMCACHED_PREFIX} \
85 --disable-dependency-tracking \
88 --disable-option-checking \
93 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
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
100 if: env.BUILD_TESTING == 'ON'
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
106 run: cat build/Testing/Temporary/LastTest.log || true
109 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
110 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
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'}}
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'}}
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
135 name: dbg-san (ubuntu-20.04, gnu, cur)
136 runs-on: ubuntu-20.04 #
138 CMAKE_BUILD_TYPE: "Debug"
141 ENABLE_SANITIZERS: "address;undefined"
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')
147 echo CC="gcc-9" >> ${GITHUB_ENV}
148 echo CXX="g++-9" >> ${GITHUB_ENV}
149 - name: Install dependencies (Linux)
150 if: runner.os == 'Linux'
152 sudo apt-get install -my \
157 ${INSTALL_MEMCACHED} \
158 ${INSTALL_CC} ${INSTALL_CXX}
159 sudo systemctl stop memcached || true
160 - name: Install dependencies (Mac)
161 if: runner.os == 'macOS'
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
172 ./configure CFLAGS="-O2 -pipe" \
173 --prefix=${MEMCACHED_PREFIX} \
177 --disable-dependency-tracking \
180 --disable-option-checking \
185 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
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
192 if: env.BUILD_TESTING == 'ON'
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
198 run: cat build/Testing/Temporary/LastTest.log || true
201 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
202 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
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'}}
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'}}
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}})"
224 # thread sanitizer build
226 name: dbg-tsan (ubuntu-20.04, gnu, cur)
227 runs-on: ubuntu-20.04 #
229 CMAKE_BUILD_TYPE: "Debug"
232 ENABLE_SANITIZERS: "thread"
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')
238 echo CC="gcc-9" >> ${GITHUB_ENV}
239 echo CXX="g++-9" >> ${GITHUB_ENV}
240 - name: Install dependencies (Linux)
241 if: runner.os == 'Linux'
243 sudo apt-get install -my \
248 ${INSTALL_MEMCACHED} \
249 ${INSTALL_CC} ${INSTALL_CXX}
250 sudo systemctl stop memcached || true
251 - name: Install dependencies (Mac)
252 if: runner.os == 'macOS'
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
263 ./configure CFLAGS="-O2 -pipe" \
264 --prefix=${MEMCACHED_PREFIX} \
268 --disable-dependency-tracking \
271 --disable-option-checking \
276 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
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
283 if: env.BUILD_TESTING == 'ON'
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
289 run: cat build/Testing/Temporary/LastTest.log || true
292 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
293 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
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'}}
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'}}
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}})"
317 name: dbg-mac (macos-10.15, clang, cur)
318 runs-on: macos-10.15 #
320 CMAKE_BUILD_TYPE: "Debug"
323 CFLAGS: "-O0 --coverage"
324 CXXFLAGS: "-O0 --coverage"
326 OS_VER: macos-10.15 #
330 continue-on-error: true
332 - uses: actions/checkout@v2
333 - name: Install dependencies (Linux)
334 if: runner.os == 'Linux'
336 sudo apt-get install -my \
341 ${INSTALL_MEMCACHED} \
342 ${INSTALL_CC} ${INSTALL_CXX}
343 sudo systemctl stop memcached || true
344 - name: Install dependencies (Mac)
345 if: runner.os == 'macOS'
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
356 ./configure CFLAGS="-O2 -pipe" \
357 --prefix=${MEMCACHED_PREFIX} \
361 --disable-dependency-tracking \
364 --disable-option-checking \
369 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
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
376 if: env.BUILD_TESTING == 'ON'
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
382 run: cat build/Testing/Temporary/LastTest.log || true
385 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
386 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
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'}}
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'}}
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
411 name: rel-mac (macos-10.15, clang, cur)
412 runs-on: macos-10.15 #
414 CMAKE_BUILD_TYPE: "Release"
415 BUILD_DOCS_MANGZ: "ON"
417 OS_VER: macos-10.15 #
420 continue-on-error: true
422 - uses: actions/checkout@v2
425 - name: Install dependencies (Linux)
426 if: runner.os == 'Linux'
428 sudo apt-get install -my \
433 ${INSTALL_MEMCACHED} \
434 ${INSTALL_CC} ${INSTALL_CXX}
435 sudo systemctl stop memcached || true
436 - name: Install dependencies (Mac)
437 if: runner.os == 'macOS'
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
448 ./configure CFLAGS="-O2 -pipe" \
449 --prefix=${MEMCACHED_PREFIX} \
453 --disable-dependency-tracking \
456 --disable-option-checking \
461 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
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
468 if: env.BUILD_TESTING == 'ON'
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
474 run: cat build/Testing/Temporary/LastTest.log || true
477 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
478 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
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'}}
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'}}
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}})"
502 name: win-msvc (windows-2019, msvc, cur)
503 runs-on: windows-2019 #
505 CMAKE_BUILD_TYPE: "Release"
506 BISON_ROOT: "C:/msys64/usr"
507 FLEX_ROOT: "C:/msys64/usr"
509 OS_VER: windows-2019 #
512 continue-on-error: true
514 - uses: actions/checkout@v2
517 - uses: msys2/setup-msys2@v2
524 - name: Install dependencies (Linux)
525 if: runner.os == 'Linux'
527 sudo apt-get install -my \
532 ${INSTALL_MEMCACHED} \
533 ${INSTALL_CC} ${INSTALL_CXX}
534 sudo systemctl stop memcached || true
535 - name: Install dependencies (Mac)
536 if: runner.os == 'macOS'
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
547 ./configure CFLAGS="-O2 -pipe" \
548 --prefix=${MEMCACHED_PREFIX} \
552 --disable-dependency-tracking \
555 --disable-option-checking \
560 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
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
567 if: env.BUILD_TESTING == 'ON'
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
573 run: cat build/Testing/Temporary/LastTest.log || true
576 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
577 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
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'}}
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'}}
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}})"
599 # linux release builds
604 os_ver: [ubuntu-20.04, ubuntu-18.04]
606 cc_ver: [new, cur, old]
607 runs-on: ${{ matrix.os_ver }}
608 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
610 CMAKE_BUILD_TYPE: "Release"
611 BUILD_DOCS_MANGZ: "ON"
613 OS_VER: ${{ matrix.os_ver }}
614 CC_VND: ${{ matrix.cc_vnd }}
615 CC_VER: ${{ matrix.cc_ver }}
617 - uses: actions/checkout@v2
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
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')
686 echo CC="msvc2019" >> ${GITHUB_ENV}
687 echo CXX="msvc2019" >> ${GITHUB_ENV}
688 - name: Install dependencies (Linux)
689 if: runner.os == 'Linux'
691 sudo apt-get install -my \
696 ${INSTALL_MEMCACHED} \
697 ${INSTALL_CC} ${INSTALL_CXX}
698 sudo systemctl stop memcached || true
699 - name: Install dependencies (Mac)
700 if: runner.os == 'macOS'
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
711 ./configure CFLAGS="-O2 -pipe" \
712 --prefix=${MEMCACHED_PREFIX} \
716 --disable-dependency-tracking \
719 --disable-option-checking \
724 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
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
731 if: env.BUILD_TESTING == 'ON'
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
737 run: cat build/Testing/Temporary/LastTest.log || true
740 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
741 if: env.CC_VER=='cur' && env.CMAKE_BUILD_TYPE=='Release'
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'}}
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'}}
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}})"