1 # Generated file; do not edit!
9 - ".github/workflows/cmake-build-ci*"
24 INSTALL_MEMCACHED: memcached
25 ENABLE_SASL: "OFF" # ^ almost no memcached distribution package has built in sasl support
26 ENABLE_HASH_HSIEH: "ON"
29 OS_VER: ubuntu-20.04 #
37 name: dbg-new (ubuntu-20.04, gnu, cur)
38 runs-on: ubuntu-20.04 #
40 CMAKE_BUILD_TYPE: "Debug"
43 CFLAGS: "-O0 --coverage"
44 CXXFLAGS: "-O0 --coverage"
46 MEMCACHED_PREFIX: "/tmp"
49 - uses: actions/checkout@v2
50 - uses: actions/checkout@v2
52 repository: memcached/memcached
55 - name: Prepare environment (for cur gnu on ubuntu-20.04)
56 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
58 echo CC="gcc-9" >> ${GITHUB_ENV}
59 echo CXX="g++-9" >> ${GITHUB_ENV}
60 - name: Install dependencies (Linux)
61 if: runner.os == 'Linux'
63 sudo apt-get update -y
64 sudo apt-get install -my \
69 ${INSTALL_MEMCACHED} \
70 ${INSTALL_CC} ${INSTALL_CXX}
71 sudo systemctl stop memcached || true
72 - name: Build memcached
73 if: runner.os != 'Windows'
79 ./configure CFLAGS="-O2 -pipe" \
80 --prefix=${MEMCACHED_PREFIX} \
84 --disable-dependency-tracking \
87 --disable-option-checking \
92 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
94 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
95 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
96 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
97 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
99 if: env.BUILD_TESTING == 'ON'
100 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
102 if: env.BUILD_TESTING == 'ON'
103 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
104 - name: Failed tests log
105 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
106 run: cat build/Testing/Temporary/LastTest.log || true
109 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
110 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
112 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
113 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
114 cmake -DCPACK_COMPONENT_INSTALL=ON build
115 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
116 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
117 - name: Notify Gitter
119 GITTER: ${{ secrets.GITTER }}
120 if: (success() || failure()) && env.GITTER != ''
121 run: bash .github/notify-gitter.sh ${{ job.status }}
122 - uses: codecov/codecov-action@v1.0.13
126 runs-on: ubuntu-20.04 #
129 sanitizer: ['address;undefined', 'thread']
131 CMAKE_BUILD_TYPE: "Debug"
134 ENABLE_SANITIZERS: ${{ matrix.sanitizer }}
136 - uses: actions/checkout@v2
137 - name: Prepare environment (for cur gnu on ubuntu-20.04)
138 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
140 echo CC="gcc-9" >> ${GITHUB_ENV}
141 echo CXX="g++-9" >> ${GITHUB_ENV}
142 - name: Install dependencies (Linux)
143 if: runner.os == 'Linux'
145 sudo apt-get update -y
146 sudo apt-get install -my \
151 ${INSTALL_MEMCACHED} \
152 ${INSTALL_CC} ${INSTALL_CXX}
153 sudo systemctl stop memcached || true
154 - name: Build memcached
155 if: runner.os != 'Windows'
161 ./configure CFLAGS="-O2 -pipe" \
162 --prefix=${MEMCACHED_PREFIX} \
166 --disable-dependency-tracking \
169 --disable-option-checking \
174 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
176 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
177 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
178 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
179 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
181 if: env.BUILD_TESTING == 'ON'
182 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
184 if: env.BUILD_TESTING == 'ON'
185 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
186 - name: Failed tests log
187 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
188 run: cat build/Testing/Temporary/LastTest.log || true
191 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
192 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
194 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
195 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
196 cmake -DCPACK_COMPONENT_INSTALL=ON build
197 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
198 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
199 - name: Notify Gitter
201 GITTER: ${{ secrets.GITTER }}
202 if: (success() || failure()) && env.GITTER != ''
203 run: bash .github/notify-gitter.sh ${{ job.status }}
207 name: dbg-mac (macos-10.15, clang, cur)
208 runs-on: macos-10.15 #
210 CMAKE_BUILD_TYPE: "Debug"
213 CFLAGS: "-O0 --coverage"
214 CXXFLAGS: "-O0 --coverage"
216 OS_VER: macos-10.15 #
219 continue-on-error: true
221 - uses: actions/checkout@v2
222 - name: Install dependencies (macOS)
223 if: runner.os == 'macOS'
225 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
226 brew services stop memcached || true
227 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
228 - name: Build memcached
229 if: runner.os != 'Windows'
235 ./configure CFLAGS="-O2 -pipe" \
236 --prefix=${MEMCACHED_PREFIX} \
240 --disable-dependency-tracking \
243 --disable-option-checking \
248 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
250 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
251 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
252 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
253 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
255 if: env.BUILD_TESTING == 'ON'
256 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
258 if: env.BUILD_TESTING == 'ON'
259 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
260 - name: Failed tests log
261 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
262 run: cat build/Testing/Temporary/LastTest.log || true
265 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
266 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
268 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
269 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
270 cmake -DCPACK_COMPONENT_INSTALL=ON build
271 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
272 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
273 - name: Notify Gitter
275 GITTER: ${{ secrets.GITTER }}
276 if: (success() || failure()) && env.GITTER != ''
277 run: bash .github/notify-gitter.sh ${{ job.status }}
278 - uses: codecov/codecov-action@v1.0.13
282 name: rel-mac (macos-10.15, clang, cur)
283 runs-on: macos-10.15 #
285 CMAKE_BUILD_TYPE: "Release"
286 BUILD_DOCS_MANGZ: "ON"
288 OS_VER: macos-10.15 #
291 continue-on-error: true
293 - uses: actions/checkout@v2
296 - name: Install dependencies (macOS)
297 if: runner.os == 'macOS'
299 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
300 brew services stop memcached || true
301 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
302 - name: Build memcached
303 if: runner.os != 'Windows'
309 ./configure CFLAGS="-O2 -pipe" \
310 --prefix=${MEMCACHED_PREFIX} \
314 --disable-dependency-tracking \
317 --disable-option-checking \
322 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
324 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
325 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
326 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
327 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
329 if: env.BUILD_TESTING == 'ON'
330 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
332 if: env.BUILD_TESTING == 'ON'
333 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
334 - name: Failed tests log
335 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
336 run: cat build/Testing/Temporary/LastTest.log || true
339 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
340 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
342 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
343 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
344 cmake -DCPACK_COMPONENT_INSTALL=ON build
345 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
346 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
347 - name: Notify Gitter
349 GITTER: ${{ secrets.GITTER }}
350 if: (success() || failure()) && env.GITTER != ''
351 run: bash .github/notify-gitter.sh ${{ job.status }}
353 # windows release builds
358 os_ver: [windows-2019]
359 cc_vnd: [msvc, mingw]
361 runs-on: ${{ matrix.os_ver }}
362 continue-on-error: true
364 CMAKE_BUILD_TYPE: "Release"
366 OS_VER: ${{ matrix.os_ver }}
367 CC_VND: ${{ matrix.cc_vnd }}
368 CC_VER: ${{ matrix.cc_ver }}
370 - uses: actions/checkout@v2
373 - name: Prepare environment (Windows)
375 echo "c:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
376 echo "c:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
377 - name: Prepare environment (MinGW)
378 if: env.CC_VND == 'mingw'
380 echo 'CMAKE_GENERATOR=MinGW Makefiles' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
381 - name: Install dependencies (Windows)
382 if: runner.os == 'Windows'
383 uses: msys2/setup-msys2@v2
390 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
391 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
392 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
393 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
395 if: env.BUILD_TESTING == 'ON'
396 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
398 if: env.BUILD_TESTING == 'ON'
399 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
400 - name: Failed tests log
401 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
402 run: cat build/Testing/Temporary/LastTest.log || true
405 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
406 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
408 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
409 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
410 cmake -DCPACK_COMPONENT_INSTALL=ON build
411 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
412 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
413 - name: Notify Gitter
415 GITTER: ${{ secrets.GITTER }}
416 if: (success() || failure()) && env.GITTER != ''
417 run: bash .github/notify-gitter.sh ${{ job.status }}
419 # linux release builds
424 os_ver: [ubuntu-20.04, ubuntu-18.04]
426 cc_ver: [new, cur, old]
427 runs-on: ${{ matrix.os_ver }}
428 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
430 CMAKE_BUILD_TYPE: "Release"
431 BUILD_DOCS_MANGZ: "ON"
433 OS_VER: ${{ matrix.os_ver }}
434 CC_VND: ${{ matrix.cc_vnd }}
435 CC_VER: ${{ matrix.cc_ver }}
437 - uses: actions/checkout@v2
440 - name: Prepare environment (for new gnu on ubuntu-20.04)
441 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
443 echo CC="gcc-10" >> ${GITHUB_ENV}
444 echo CXX="g++-10" >> ${GITHUB_ENV}
445 - name: Prepare environment (for cur gnu on ubuntu-20.04)
446 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
448 echo CC="gcc-9" >> ${GITHUB_ENV}
449 echo CXX="g++-9" >> ${GITHUB_ENV}
450 - name: Prepare environment (for new clang on ubuntu-20.04)
451 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
453 echo CC="clang-12" >> ${GITHUB_ENV}
454 echo CXX="clang++-12" >> ${GITHUB_ENV}
455 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
456 echo INSTALL_CXX="libc++-12-dev libc++abi-12-dev" >> ${GITHUB_ENV}
457 - name: Prepare environment (for cur clang on ubuntu-20.04)
458 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
460 echo CC="clang-11" >> ${GITHUB_ENV}
461 echo CXX="clang++-11" >> ${GITHUB_ENV}
462 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
463 echo INSTALL_CXX="libc++-11-dev libc++abi-11-dev" >> ${GITHUB_ENV}
464 - name: Prepare environment (for old clang on ubuntu-20.04)
465 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
467 echo CC="clang-10" >> ${GITHUB_ENV}
468 echo CXX="clang++-10" >> ${GITHUB_ENV}
469 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
470 echo INSTALL_CXX="libc++-10-dev libc++abi-10-dev" >> ${GITHUB_ENV}
471 - name: Prepare environment (for new gnu on ubuntu-18.04)
472 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
474 echo CC="gcc-10" >> ${GITHUB_ENV}
475 echo CXX="g++-10" >> ${GITHUB_ENV}
476 - name: Prepare environment (for cur gnu on ubuntu-18.04)
477 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
479 echo CC="gcc-9" >> ${GITHUB_ENV}
480 echo CXX="g++-9" >> ${GITHUB_ENV}
481 - name: Prepare environment (for old gnu on ubuntu-18.04)
482 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
484 echo CC="gcc-7" >> ${GITHUB_ENV}
485 echo CXX="g++-7" >> ${GITHUB_ENV}
486 - name: Prepare environment (for cur clang on ubuntu-18.04)
487 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
489 echo CC="clang-9" >> ${GITHUB_ENV}
490 echo CXX="clang++-9" >> ${GITHUB_ENV}
491 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
492 - name: Install dependencies (Linux)
493 if: runner.os == 'Linux'
495 sudo apt-get update -y
496 sudo apt-get install -my \
501 ${INSTALL_MEMCACHED} \
502 ${INSTALL_CC} ${INSTALL_CXX}
503 sudo systemctl stop memcached || true
504 - name: Build memcached
505 if: runner.os != 'Windows'
511 ./configure CFLAGS="-O2 -pipe" \
512 --prefix=${MEMCACHED_PREFIX} \
516 --disable-dependency-tracking \
519 --disable-option-checking \
524 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
526 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
527 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
528 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
529 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
531 if: env.BUILD_TESTING == 'ON'
532 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
534 if: env.BUILD_TESTING == 'ON'
535 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
536 - name: Failed tests log
537 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
538 run: cat build/Testing/Temporary/LastTest.log || true
541 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
542 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
544 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
545 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
546 cmake -DCPACK_COMPONENT_INSTALL=ON build
547 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
548 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
549 - name: Notify Gitter
551 GITTER: ${{ secrets.GITTER }}
552 if: (success() || failure()) && env.GITTER != ''
553 run: bash .github/notify-gitter.sh ${{ job.status }}