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.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
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 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
115 - uses: codecov/codecov-action@v1.0.13
119 runs-on: ubuntu-20.04 #
122 sanitizer: ['address;undefined', 'thread']
124 CMAKE_BUILD_TYPE: "Debug"
127 ENABLE_SANITIZERS: ${{ matrix.sanitizer }}
129 - uses: actions/checkout@v2
130 - name: Prepare environment (for cur gnu on ubuntu-20.04)
131 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
133 echo CC="gcc-9" >> ${GITHUB_ENV}
134 echo CXX="g++-9" >> ${GITHUB_ENV}
135 - name: Install dependencies (Linux)
136 if: runner.os == 'Linux'
138 sudo apt-get install -my \
143 ${INSTALL_MEMCACHED} \
144 ${INSTALL_CC} ${INSTALL_CXX}
145 sudo systemctl stop memcached || true
146 - name: Build memcached
147 if: runner.os != 'Windows'
153 ./configure CFLAGS="-O2 -pipe" \
154 --prefix=${MEMCACHED_PREFIX} \
158 --disable-dependency-tracking \
161 --disable-option-checking \
166 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
168 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
169 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
170 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
171 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
173 if: env.BUILD_TESTING == 'ON'
174 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
176 if: env.BUILD_TESTING == 'ON'
177 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
178 - name: Failed tests log
179 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
180 run: cat build/Testing/Temporary/LastTest.log || true
183 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
184 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
186 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
187 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
188 cmake -DCPACK_COMPONENT_INSTALL=ON build
189 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
190 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
191 - name: Notify Gitter
192 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
196 name: dbg-mac (macos-10.15, clang, cur)
197 runs-on: macos-10.15 #
199 CMAKE_BUILD_TYPE: "Debug"
202 CFLAGS: "-O0 --coverage"
203 CXXFLAGS: "-O0 --coverage"
205 OS_VER: macos-10.15 #
208 continue-on-error: true
210 - uses: actions/checkout@v2
211 - name: Install dependencies (macOS)
212 if: runner.os == 'macOS'
214 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
215 brew services stop memcached || true
216 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
217 - name: Build memcached
218 if: runner.os != 'Windows'
224 ./configure CFLAGS="-O2 -pipe" \
225 --prefix=${MEMCACHED_PREFIX} \
229 --disable-dependency-tracking \
232 --disable-option-checking \
237 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
239 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
240 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
241 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
242 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
244 if: env.BUILD_TESTING == 'ON'
245 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
247 if: env.BUILD_TESTING == 'ON'
248 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
249 - name: Failed tests log
250 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
251 run: cat build/Testing/Temporary/LastTest.log || true
254 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
255 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
257 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
258 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
259 cmake -DCPACK_COMPONENT_INSTALL=ON build
260 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
261 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
262 - name: Notify Gitter
263 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
264 - uses: codecov/codecov-action@v1.0.13
268 name: rel-mac (macos-10.15, clang, cur)
269 runs-on: macos-10.15 #
271 CMAKE_BUILD_TYPE: "Release"
272 BUILD_DOCS_MANGZ: "ON"
274 OS_VER: macos-10.15 #
277 continue-on-error: true
279 - uses: actions/checkout@v2
282 - name: Install dependencies (macOS)
283 if: runner.os == 'macOS'
285 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
286 brew services stop memcached || true
287 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
288 - name: Build memcached
289 if: runner.os != 'Windows'
295 ./configure CFLAGS="-O2 -pipe" \
296 --prefix=${MEMCACHED_PREFIX} \
300 --disable-dependency-tracking \
303 --disable-option-checking \
308 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
310 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
311 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
312 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
313 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
315 if: env.BUILD_TESTING == 'ON'
316 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
318 if: env.BUILD_TESTING == 'ON'
319 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
320 - name: Failed tests log
321 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
322 run: cat build/Testing/Temporary/LastTest.log || true
325 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
326 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
328 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
329 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
330 cmake -DCPACK_COMPONENT_INSTALL=ON build
331 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
332 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
333 - name: Notify Gitter
334 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
336 # windows release builds
341 os_ver: [windows-2019]
342 cc_vnd: [msvc, mingw]
344 runs-on: ${{ matrix.os_ver }}
345 continue-on-error: true
347 CMAKE_BUILD_TYPE: "Release"
349 OS_VER: ${{ matrix.os_ver }}
350 CC_VND: ${{ matrix.cc_vnd }}
351 CC_VER: ${{ matrix.cc_ver }}
353 - uses: actions/checkout@v2
356 - name: Prepare environment (Windows)
358 echo "c:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
359 echo "c:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
360 - name: Prepare environment (MinGW)
361 if: env.CC_VND == 'mingw'
363 echo 'CMAKE_GENERATOR=MinGW Makefiles' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
364 - name: Install dependencies (Windows)
365 if: runner.os == 'Windows'
366 uses: msys2/setup-msys2@v2
373 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
374 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
375 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
376 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
378 if: env.BUILD_TESTING == 'ON'
379 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
381 if: env.BUILD_TESTING == 'ON'
382 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
383 - name: Failed tests log
384 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
385 run: cat build/Testing/Temporary/LastTest.log || true
388 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
389 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
391 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
392 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
393 cmake -DCPACK_COMPONENT_INSTALL=ON build
394 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
395 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
396 - name: Notify Gitter
397 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}
399 # linux release builds
404 os_ver: [ubuntu-20.04, ubuntu-18.04]
406 cc_ver: [new, cur, old]
407 runs-on: ${{ matrix.os_ver }}
408 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
410 CMAKE_BUILD_TYPE: "Release"
411 BUILD_DOCS_MANGZ: "ON"
413 OS_VER: ${{ matrix.os_ver }}
414 CC_VND: ${{ matrix.cc_vnd }}
415 CC_VER: ${{ matrix.cc_ver }}
417 - uses: actions/checkout@v2
420 - name: Prepare environment (for new gnu on ubuntu-20.04)
421 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
423 echo CC="gcc-10" >> ${GITHUB_ENV}
424 echo CXX="g++-10" >> ${GITHUB_ENV}
425 echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
426 echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
427 - name: Prepare environment (for cur gnu on ubuntu-20.04)
428 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
430 echo CC="gcc-9" >> ${GITHUB_ENV}
431 echo CXX="g++-9" >> ${GITHUB_ENV}
432 - name: Prepare environment (for old gnu on ubuntu-20.04)
433 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
435 echo CC="gcc-8" >> ${GITHUB_ENV}
436 echo CXX="g++-8" >> ${GITHUB_ENV}
437 - name: Prepare environment (for new clang on ubuntu-20.04)
438 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
440 echo CC="clang-10" >> ${GITHUB_ENV}
441 echo CXX="clang++-10" >> ${GITHUB_ENV}
442 - name: Prepare environment (for cur clang on ubuntu-20.04)
443 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
445 echo CC="clang-9" >> ${GITHUB_ENV}
446 echo CXX="clang++-9" >> ${GITHUB_ENV}
447 - name: Prepare environment (for old clang on ubuntu-20.04)
448 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
450 echo CC="clang-8" >> ${GITHUB_ENV}
451 echo CXX="clang++-8" >> ${GITHUB_ENV}
452 - name: Prepare environment (for new gnu on ubuntu-18.04)
453 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
455 echo CC="gcc-9" >> ${GITHUB_ENV}
456 echo CXX="g++-9" >> ${GITHUB_ENV}
457 - name: Prepare environment (for cur gnu on ubuntu-18.04)
458 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
460 echo CC="gcc-8" >> ${GITHUB_ENV}
461 echo CXX="g++-8" >> ${GITHUB_ENV}
462 - name: Prepare environment (for old gnu on ubuntu-18.04)
463 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
465 echo CC="gcc-7" >> ${GITHUB_ENV}
466 echo CXX="g++-7" >> ${GITHUB_ENV}
467 - name: Prepare environment (for new clang on ubuntu-18.04)
468 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
470 echo CC="clang-9" >> ${GITHUB_ENV}
471 echo CXX="clang++-9" >> ${GITHUB_ENV}
472 - name: Prepare environment (for cur clang on ubuntu-18.04)
473 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
475 echo CC="clang-8" >> ${GITHUB_ENV}
476 echo CXX="clang++-8" >> ${GITHUB_ENV}
477 - name: Prepare environment (for old clang on ubuntu-18.04)
478 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
480 echo CC="clang-6.0" >> ${GITHUB_ENV}
481 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
482 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
483 - name: Install dependencies (Linux)
484 if: runner.os == 'Linux'
486 sudo apt-get install -my \
491 ${INSTALL_MEMCACHED} \
492 ${INSTALL_CC} ${INSTALL_CXX}
493 sudo systemctl stop memcached || true
494 - name: Build memcached
495 if: runner.os != 'Windows'
501 ./configure CFLAGS="-O2 -pipe" \
502 --prefix=${MEMCACHED_PREFIX} \
506 --disable-dependency-tracking \
509 --disable-option-checking \
514 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
516 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
517 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
518 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
519 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
521 if: env.BUILD_TESTING == 'ON'
522 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
524 if: env.BUILD_TESTING == 'ON'
525 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
526 - name: Failed tests log
527 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
528 run: cat build/Testing/Temporary/LastTest.log || true
531 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
532 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
534 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
535 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
536 cmake -DCPACK_COMPONENT_INSTALL=ON build
537 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
538 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
539 - name: Notify Gitter
540 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}