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: Build memcached
69 if: runner.os != 'Windows'
75 ./configure CFLAGS="-O2 -pipe" \
76 --prefix=${MEMCACHED_PREFIX} \
80 --disable-dependency-tracking \
83 --disable-option-checking \
88 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
90 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
91 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
92 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
93 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
95 if: env.BUILD_TESTING == 'ON'
96 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
98 if: env.BUILD_TESTING == 'ON'
99 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
100 - name: Failed tests log
101 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
102 run: cat build/Testing/Temporary/LastTest.log || true
105 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
106 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
108 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
109 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
110 cmake -DCPACK_COMPONENT_INSTALL=ON build
111 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
112 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
113 - name: Notify Gitter
114 if: success() || failure()
115 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
116 - uses: codecov/codecov-action@v1.0.13
120 runs-on: ubuntu-20.04 #
123 sanitizer: ['address;undefined', 'thread']
125 CMAKE_BUILD_TYPE: "Debug"
128 ENABLE_SANITIZERS: ${{ matrix.sanitizer }}
130 - uses: actions/checkout@v2
131 - name: Prepare environment (for cur gnu on ubuntu-20.04)
132 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
134 echo CC="gcc-9" >> ${GITHUB_ENV}
135 echo CXX="g++-9" >> ${GITHUB_ENV}
136 - name: Install dependencies (Linux)
137 if: runner.os == 'Linux'
139 sudo apt-get install -my \
144 ${INSTALL_MEMCACHED} \
145 ${INSTALL_CC} ${INSTALL_CXX}
146 sudo systemctl stop memcached || true
147 - name: Build memcached
148 if: runner.os != 'Windows'
154 ./configure CFLAGS="-O2 -pipe" \
155 --prefix=${MEMCACHED_PREFIX} \
159 --disable-dependency-tracking \
162 --disable-option-checking \
167 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
169 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
170 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
171 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
172 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
174 if: env.BUILD_TESTING == 'ON'
175 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
177 if: env.BUILD_TESTING == 'ON'
178 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
179 - name: Failed tests log
180 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
181 run: cat build/Testing/Temporary/LastTest.log || true
184 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
185 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
187 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
188 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
189 cmake -DCPACK_COMPONENT_INSTALL=ON build
190 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
191 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
192 - name: Notify Gitter
193 if: success() || failure()
194 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
198 name: dbg-mac (macos-10.15, clang, cur)
199 runs-on: macos-10.15 #
201 CMAKE_BUILD_TYPE: "Debug"
204 CFLAGS: "-O0 --coverage"
205 CXXFLAGS: "-O0 --coverage"
207 OS_VER: macos-10.15 #
210 continue-on-error: true
212 - uses: actions/checkout@v2
213 - name: Install dependencies (macOS)
214 if: runner.os == 'macOS'
216 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
217 brew services stop memcached || true
218 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
219 - name: Build memcached
220 if: runner.os != 'Windows'
226 ./configure CFLAGS="-O2 -pipe" \
227 --prefix=${MEMCACHED_PREFIX} \
231 --disable-dependency-tracking \
234 --disable-option-checking \
239 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
241 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
242 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
243 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
244 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
246 if: env.BUILD_TESTING == 'ON'
247 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
249 if: env.BUILD_TESTING == 'ON'
250 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
251 - name: Failed tests log
252 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
253 run: cat build/Testing/Temporary/LastTest.log || true
256 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
257 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
259 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
260 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
261 cmake -DCPACK_COMPONENT_INSTALL=ON build
262 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
263 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
264 - name: Notify Gitter
265 if: success() || failure()
266 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
267 - uses: codecov/codecov-action@v1.0.13
271 name: rel-mac (macos-10.15, clang, cur)
272 runs-on: macos-10.15 #
274 CMAKE_BUILD_TYPE: "Release"
275 BUILD_DOCS_MANGZ: "ON"
277 OS_VER: macos-10.15 #
280 continue-on-error: true
282 - uses: actions/checkout@v2
285 - name: Install dependencies (macOS)
286 if: runner.os == 'macOS'
288 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
289 brew services stop memcached || true
290 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
291 - name: Build memcached
292 if: runner.os != 'Windows'
298 ./configure CFLAGS="-O2 -pipe" \
299 --prefix=${MEMCACHED_PREFIX} \
303 --disable-dependency-tracking \
306 --disable-option-checking \
311 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
313 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
314 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
315 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
316 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
318 if: env.BUILD_TESTING == 'ON'
319 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
321 if: env.BUILD_TESTING == 'ON'
322 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
323 - name: Failed tests log
324 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
325 run: cat build/Testing/Temporary/LastTest.log || true
328 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
329 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
331 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
332 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
333 cmake -DCPACK_COMPONENT_INSTALL=ON build
334 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
335 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
336 - name: Notify Gitter
337 if: success() || failure()
338 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
340 # windows release builds
345 os_ver: [windows-2019]
346 cc_vnd: [msvc, mingw]
348 runs-on: ${{ matrix.os_ver }}
349 continue-on-error: true
351 CMAKE_BUILD_TYPE: "Release"
353 OS_VER: ${{ matrix.os_ver }}
354 CC_VND: ${{ matrix.cc_vnd }}
355 CC_VER: ${{ matrix.cc_ver }}
357 - uses: actions/checkout@v2
360 - name: Prepare environment (Windows)
362 echo "c:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
363 echo "c:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
364 - name: Prepare environment (MinGW)
365 if: env.CC_VND == 'mingw'
367 echo 'CMAKE_GENERATOR=MinGW Makefiles' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
368 - name: Install dependencies (Windows)
369 if: runner.os == 'Windows'
370 uses: msys2/setup-msys2@v2
377 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
378 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
379 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
380 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
382 if: env.BUILD_TESTING == 'ON'
383 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
385 if: env.BUILD_TESTING == 'ON'
386 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
387 - name: Failed tests log
388 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
389 run: cat build/Testing/Temporary/LastTest.log || true
392 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
393 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
395 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
396 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
397 cmake -DCPACK_COMPONENT_INSTALL=ON build
398 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
399 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
400 - name: Notify Gitter
401 if: success() || failure()
402 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
404 # linux release builds
409 os_ver: [ubuntu-20.04, ubuntu-18.04]
411 cc_ver: [new, cur, old]
412 runs-on: ${{ matrix.os_ver }}
413 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
415 CMAKE_BUILD_TYPE: "Release"
416 BUILD_DOCS_MANGZ: "ON"
418 OS_VER: ${{ matrix.os_ver }}
419 CC_VND: ${{ matrix.cc_vnd }}
420 CC_VER: ${{ matrix.cc_ver }}
422 - uses: actions/checkout@v2
425 - name: Prepare environment (for new gnu on ubuntu-20.04)
426 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
428 echo CC="gcc-10" >> ${GITHUB_ENV}
429 echo CXX="g++-10" >> ${GITHUB_ENV}
430 echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
431 echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
432 - name: Prepare environment (for cur gnu on ubuntu-20.04)
433 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
435 echo CC="gcc-9" >> ${GITHUB_ENV}
436 echo CXX="g++-9" >> ${GITHUB_ENV}
437 - name: Prepare environment (for old gnu on ubuntu-20.04)
438 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
440 echo CC="gcc-8" >> ${GITHUB_ENV}
441 echo CXX="g++-8" >> ${GITHUB_ENV}
442 - name: Prepare environment (for new clang on ubuntu-20.04)
443 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
445 echo CC="clang-10" >> ${GITHUB_ENV}
446 echo CXX="clang++-10" >> ${GITHUB_ENV}
447 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
448 - name: Prepare environment (for cur clang on ubuntu-20.04)
449 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
451 echo CC="clang-9" >> ${GITHUB_ENV}
452 echo CXX="clang++-9" >> ${GITHUB_ENV}
453 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
454 echo INSTALL_CXX="libc++-9-dev libc++abi-9-dev" >> ${GITHUB_ENV}
455 - name: Prepare environment (for old clang on ubuntu-20.04)
456 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
458 echo CC="clang-8" >> ${GITHUB_ENV}
459 echo CXX="clang++-8" >> ${GITHUB_ENV}
460 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
461 echo INSTALL_CXX="libc++-8-dev libc++abi-8-dev" >> ${GITHUB_ENV}
462 - name: Prepare environment (for new gnu on ubuntu-18.04)
463 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
465 echo CC="gcc-9" >> ${GITHUB_ENV}
466 echo CXX="g++-9" >> ${GITHUB_ENV}
467 - name: Prepare environment (for cur gnu on ubuntu-18.04)
468 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
470 echo CC="gcc-8" >> ${GITHUB_ENV}
471 echo CXX="g++-8" >> ${GITHUB_ENV}
472 - name: Prepare environment (for old gnu on ubuntu-18.04)
473 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
475 echo CC="gcc-7" >> ${GITHUB_ENV}
476 echo CXX="g++-7" >> ${GITHUB_ENV}
477 - name: Prepare environment (for new clang on ubuntu-18.04)
478 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
480 echo CC="clang-9" >> ${GITHUB_ENV}
481 echo CXX="clang++-9" >> ${GITHUB_ENV}
482 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
483 - name: Prepare environment (for cur clang on ubuntu-18.04)
484 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
486 echo CC="clang-8" >> ${GITHUB_ENV}
487 echo CXX="clang++-8" >> ${GITHUB_ENV}
488 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
489 - name: Prepare environment (for old clang on ubuntu-18.04)
490 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
492 echo CC="clang-6.0" >> ${GITHUB_ENV}
493 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
494 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
495 - name: Install dependencies (Linux)
496 if: runner.os == 'Linux'
498 sudo apt-get install -my \
503 ${INSTALL_MEMCACHED} \
504 ${INSTALL_CC} ${INSTALL_CXX}
505 sudo systemctl stop memcached || true
506 - name: Build memcached
507 if: runner.os != 'Windows'
513 ./configure CFLAGS="-O2 -pipe" \
514 --prefix=${MEMCACHED_PREFIX} \
518 --disable-dependency-tracking \
521 --disable-option-checking \
526 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
528 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
529 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
530 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
531 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
533 if: env.BUILD_TESTING == 'ON'
534 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
536 if: env.BUILD_TESTING == 'ON'
537 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
538 - name: Failed tests log
539 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
540 run: cat build/Testing/Temporary/LastTest.log || true
543 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
544 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
546 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
547 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
548 cmake -DCPACK_COMPONENT_INSTALL=ON build
549 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
550 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
551 - name: Notify Gitter
552 if: success() || failure()
553 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}