ci: memcached-1.6.13
[awesomized/libmemcached] / .github / workflows / cmake-build-ci.yml
1 # Generated file; do not edit!
2 name: cmake-build-ci
3 on:
4 workflow_dispatch:
5 release:
6 types: [published]
7 push:
8 paths:
9 - ".github/workflows/cmake-build-ci*"
10 - "CMake*"
11 - "CPack*"
12 - "contrib/**"
13 - "include/**"
14 - "src/**"
15 - "test/**"
16 branches-ignore:
17 - gh-pages
18 pull_request:
19 branches:
20 - master
21 - v1.x
22 env:
23 # defaults
24 INSTALL_MEMCACHED: memcached
25 ENABLE_SASL: "OFF" # ^ almost no memcached distribution package has built in sasl support
26 ENABLE_HASH_HSIEH: "ON"
27 ENABLE_DTRACE: "OFF"
28 OS_VND: Linux #
29 OS_VER: ubuntu-20.04 #
30 CC_VND: gnu #
31 CC_VER: cur #
32
33 jobs:
34
35 # new memcached
36 dbg-new:
37 name: dbg-new (ubuntu-20.04, gnu, cur)
38 runs-on: ubuntu-20.04 #
39 env:
40 CMAKE_BUILD_TYPE: "Debug"
41 BUILD_TESTING: "ON"
42 VERBOSE: "ON"
43 CFLAGS: "-O0 --coverage"
44 CXXFLAGS: "-O0 --coverage"
45 INSTALL_MEMCACHED: ""
46 MEMCACHED_PREFIX: "/tmp"
47 ENABLE_SASL: "ON"
48 steps:
49 - uses: actions/checkout@v2
50 - uses: actions/checkout@v2
51 with:
52 repository: memcached/memcached
53 path: memcached
54 ref: 1.6.13
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')
57 run: |
58 echo CC="gcc-9" >> ${GITHUB_ENV}
59 echo CXX="g++-9" >> ${GITHUB_ENV}
60 - name: Install dependencies (Linux)
61 if: runner.os == 'Linux'
62 run: |
63 sudo apt-get update -y
64 sudo apt-get install -my \
65 libevent-dev \
66 libsasl2-dev \
67 libtbb-dev \
68 python3-sphinx \
69 ${INSTALL_MEMCACHED} \
70 ${INSTALL_CC} ${INSTALL_CXX}
71 sudo systemctl stop memcached || true
72 - name: Build memcached
73 if: runner.os != 'Windows'
74 run: |
75 if test -d memcached
76 then
77 cd memcached
78 ./autogen.sh
79 ./configure CFLAGS="-O2 -pipe" \
80 --prefix=${MEMCACHED_PREFIX} \
81 --enable-sasl \
82 --enable-sasl-pwdb \
83 --disable-coverage \
84 --disable-dependency-tracking \
85 --disable-docs \
86 --disable-extstore \
87 --disable-option-checking \
88 ;
89 make -j2
90 make install
91 cd ..
92 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
93 fi
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
98 - name: Test
99 if: env.BUILD_TESTING == 'ON'
100 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
101 - name: Install
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
107 - name: Package
108 env:
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 ')
111 run: |
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
118 env:
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
123
124 # sanitizer build
125 sanitizer:
126 runs-on: ubuntu-20.04 #
127 strategy:
128 matrix:
129 sanitizer: ['address;undefined', 'thread']
130 env:
131 CMAKE_BUILD_TYPE: "Debug"
132 BUILD_TESTING: "ON"
133 VERBOSE: "ON"
134 ENABLE_SANITIZERS: ${{ matrix.sanitizer }}
135 steps:
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')
139 run: |
140 echo CC="gcc-9" >> ${GITHUB_ENV}
141 echo CXX="g++-9" >> ${GITHUB_ENV}
142 - name: Install dependencies (Linux)
143 if: runner.os == 'Linux'
144 run: |
145 sudo apt-get update -y
146 sudo apt-get install -my \
147 libevent-dev \
148 libsasl2-dev \
149 libtbb-dev \
150 python3-sphinx \
151 ${INSTALL_MEMCACHED} \
152 ${INSTALL_CC} ${INSTALL_CXX}
153 sudo systemctl stop memcached || true
154 - name: Build memcached
155 if: runner.os != 'Windows'
156 run: |
157 if test -d memcached
158 then
159 cd memcached
160 ./autogen.sh
161 ./configure CFLAGS="-O2 -pipe" \
162 --prefix=${MEMCACHED_PREFIX} \
163 --enable-sasl \
164 --enable-sasl-pwdb \
165 --disable-coverage \
166 --disable-dependency-tracking \
167 --disable-docs \
168 --disable-extstore \
169 --disable-option-checking \
170 ;
171 make -j2
172 make install
173 cd ..
174 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
175 fi
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
180 - name: Test
181 if: env.BUILD_TESTING == 'ON'
182 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
183 - name: Install
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
189 - name: Package
190 env:
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 ')
193 run: |
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
200 env:
201 GITTER: ${{ secrets.GITTER }}
202 if: (success() || failure()) && env.GITTER != ''
203 run: bash .github/notify-gitter.sh ${{ job.status }}
204
205 # mac debug
206 dbg-mac:
207 name: dbg-mac (macos-10.15, clang, cur)
208 runs-on: macos-10.15 #
209 env:
210 CMAKE_BUILD_TYPE: "Debug"
211 BUILD_TESTING: "ON"
212 VERBOSE: "ON"
213 CFLAGS: "-O0 --coverage"
214 CXXFLAGS: "-O0 --coverage"
215 OS_VND: macOS #
216 OS_VER: macos-10.15 #
217 CC_VND: clang #
218 CC_VER: cur #
219 continue-on-error: true
220 steps:
221 - uses: actions/checkout@v2
222 - name: Install dependencies (macOS)
223 if: runner.os == 'macOS'
224 run: |
225 brew update # we need at least memcached-1.6.10 for the META proto
226 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
227 brew services stop memcached || true
228 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
229 - name: Build memcached
230 if: runner.os != 'Windows'
231 run: |
232 if test -d memcached
233 then
234 cd memcached
235 ./autogen.sh
236 ./configure CFLAGS="-O2 -pipe" \
237 --prefix=${MEMCACHED_PREFIX} \
238 --enable-sasl \
239 --enable-sasl-pwdb \
240 --disable-coverage \
241 --disable-dependency-tracking \
242 --disable-docs \
243 --disable-extstore \
244 --disable-option-checking \
245 ;
246 make -j2
247 make install
248 cd ..
249 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
250 fi
251 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
252 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
253 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
254 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
255 - name: Test
256 if: env.BUILD_TESTING == 'ON'
257 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
258 - name: Install
259 if: env.BUILD_TESTING == 'ON'
260 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
261 - name: Failed tests log
262 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
263 run: cat build/Testing/Temporary/LastTest.log || true
264 - name: Package
265 env:
266 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
267 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 run: |
269 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
270 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
271 cmake -DCPACK_COMPONENT_INSTALL=ON build
272 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
273 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
274 - name: Notify Gitter
275 env:
276 GITTER: ${{ secrets.GITTER }}
277 if: (success() || failure()) && env.GITTER != ''
278 run: bash .github/notify-gitter.sh ${{ job.status }}
279 - uses: codecov/codecov-action@v1.0.13
280
281 # mac release
282 rel-mac:
283 name: rel-mac (macos-10.15, clang, cur)
284 runs-on: macos-10.15 #
285 env:
286 CMAKE_BUILD_TYPE: "Release"
287 BUILD_DOCS_MANGZ: "ON"
288 OS_VND: macOS #
289 OS_VER: macos-10.15 #
290 CC_VND: clang #
291 CC_VER: cur #
292 continue-on-error: true
293 steps:
294 - uses: actions/checkout@v2
295 with:
296 fetch-depth: 0
297 - name: Install dependencies (macOS)
298 if: runner.os == 'macOS'
299 run: |
300 brew update # we need at least memcached-1.6.10 for the META proto
301 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
302 brew services stop memcached || true
303 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
304 - name: Build memcached
305 if: runner.os != 'Windows'
306 run: |
307 if test -d memcached
308 then
309 cd memcached
310 ./autogen.sh
311 ./configure CFLAGS="-O2 -pipe" \
312 --prefix=${MEMCACHED_PREFIX} \
313 --enable-sasl \
314 --enable-sasl-pwdb \
315 --disable-coverage \
316 --disable-dependency-tracking \
317 --disable-docs \
318 --disable-extstore \
319 --disable-option-checking \
320 ;
321 make -j2
322 make install
323 cd ..
324 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
325 fi
326 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
327 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
328 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
329 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
330 - name: Test
331 if: env.BUILD_TESTING == 'ON'
332 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
333 - name: Install
334 if: env.BUILD_TESTING == 'ON'
335 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
336 - name: Failed tests log
337 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
338 run: cat build/Testing/Temporary/LastTest.log || true
339 - name: Package
340 env:
341 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
342 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
343 run: |
344 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
345 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
346 cmake -DCPACK_COMPONENT_INSTALL=ON build
347 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
348 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
349 - name: Notify Gitter
350 env:
351 GITTER: ${{ secrets.GITTER }}
352 if: (success() || failure()) && env.GITTER != ''
353 run: bash .github/notify-gitter.sh ${{ job.status }}
354
355 # windows release builds
356 windows:
357 strategy:
358 fail-fast: false
359 matrix:
360 os_ver: [windows-2019]
361 cc_vnd: [msvc, mingw]
362 cc_ver: [cur]
363 runs-on: ${{ matrix.os_ver }}
364 continue-on-error: true
365 env:
366 CMAKE_BUILD_TYPE: "Release"
367 OS_VND: Windows
368 OS_VER: ${{ matrix.os_ver }}
369 CC_VND: ${{ matrix.cc_vnd }}
370 CC_VER: ${{ matrix.cc_ver }}
371 steps:
372 - uses: actions/checkout@v2
373 with:
374 fetch-depth: 0
375 - name: Prepare environment (Windows)
376 run: |
377 echo "c:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
378 echo "c:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
379 echo 'CMAKE_GENERATOR=Visual Studio 16 2019' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
380 - name: Prepare environment (MinGW)
381 if: env.CC_VND == 'mingw'
382 run: |
383 echo 'CMAKE_GENERATOR=MinGW Makefiles' | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
384 - name: Install dependencies (Windows)
385 if: runner.os == 'Windows'
386 uses: msys2/setup-msys2@v2
387 with:
388 release: false
389 path-type: inherit
390 install: >-
391 rsync
392 openssh
393 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
394 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
395 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
396 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
397 - name: Test
398 if: env.BUILD_TESTING == 'ON'
399 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
400 - name: Install
401 if: env.BUILD_TESTING == 'ON'
402 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
403 - name: Failed tests log
404 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
405 run: cat build/Testing/Temporary/LastTest.log || true
406 - name: Package
407 env:
408 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
409 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
410 run: |
411 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
412 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
413 cmake -DCPACK_COMPONENT_INSTALL=ON build
414 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
415 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
416 - name: Notify Gitter
417 env:
418 GITTER: ${{ secrets.GITTER }}
419 if: (success() || failure()) && env.GITTER != ''
420 run: bash .github/notify-gitter.sh ${{ job.status }}
421
422 # linux release builds
423 release:
424 strategy:
425 fail-fast: false
426 matrix:
427 os_ver: [ubuntu-20.04, ubuntu-18.04]
428 cc_vnd: [gnu, clang]
429 cc_ver: [new, cur, old]
430 runs-on: ${{ matrix.os_ver }}
431 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
432 env:
433 CMAKE_BUILD_TYPE: "Release"
434 BUILD_DOCS_MANGZ: "ON"
435 OS_VND: Linux
436 OS_VER: ${{ matrix.os_ver }}
437 CC_VND: ${{ matrix.cc_vnd }}
438 CC_VER: ${{ matrix.cc_ver }}
439 steps:
440 - uses: actions/checkout@v2
441 with:
442 fetch-depth: 0
443 - name: Prepare environment (for new gnu on ubuntu-20.04)
444 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
445 run: |
446 echo CC="gcc-10" >> ${GITHUB_ENV}
447 echo CXX="g++-10" >> ${GITHUB_ENV}
448 - name: Prepare environment (for cur gnu on ubuntu-20.04)
449 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
450 run: |
451 echo CC="gcc-9" >> ${GITHUB_ENV}
452 echo CXX="g++-9" >> ${GITHUB_ENV}
453 - name: Prepare environment (for new clang on ubuntu-20.04)
454 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
455 run: |
456 echo CC="clang-12" >> ${GITHUB_ENV}
457 echo CXX="clang++-12" >> ${GITHUB_ENV}
458 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
459 echo INSTALL_CXX="libc++-12-dev libc++abi-12-dev" >> ${GITHUB_ENV}
460 - name: Prepare environment (for cur clang on ubuntu-20.04)
461 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
462 run: |
463 echo CC="clang-11" >> ${GITHUB_ENV}
464 echo CXX="clang++-11" >> ${GITHUB_ENV}
465 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
466 echo INSTALL_CXX="libc++-11-dev libc++abi-11-dev" >> ${GITHUB_ENV}
467 - name: Prepare environment (for old clang on ubuntu-20.04)
468 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
469 run: |
470 echo CC="clang-10" >> ${GITHUB_ENV}
471 echo CXX="clang++-10" >> ${GITHUB_ENV}
472 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
473 echo INSTALL_CXX="libc++-10-dev libc++abi-10-dev" >> ${GITHUB_ENV}
474 - name: Prepare environment (for new gnu on ubuntu-18.04)
475 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
476 run: |
477 echo CC="gcc-10" >> ${GITHUB_ENV}
478 echo CXX="g++-10" >> ${GITHUB_ENV}
479 - name: Prepare environment (for cur gnu on ubuntu-18.04)
480 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
481 run: |
482 echo CC="gcc-9" >> ${GITHUB_ENV}
483 echo CXX="g++-9" >> ${GITHUB_ENV}
484 - name: Prepare environment (for old gnu on ubuntu-18.04)
485 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
486 run: |
487 echo CC="gcc-7" >> ${GITHUB_ENV}
488 echo CXX="g++-7" >> ${GITHUB_ENV}
489 - name: Prepare environment (for cur clang on ubuntu-18.04)
490 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
491 run: |
492 echo CC="clang-9" >> ${GITHUB_ENV}
493 echo CXX="clang++-9" >> ${GITHUB_ENV}
494 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
495 - name: Install dependencies (Linux)
496 if: runner.os == 'Linux'
497 run: |
498 sudo apt-get update -y
499 sudo apt-get install -my \
500 libevent-dev \
501 libsasl2-dev \
502 libtbb-dev \
503 python3-sphinx \
504 ${INSTALL_MEMCACHED} \
505 ${INSTALL_CC} ${INSTALL_CXX}
506 sudo systemctl stop memcached || true
507 - name: Build memcached
508 if: runner.os != 'Windows'
509 run: |
510 if test -d memcached
511 then
512 cd memcached
513 ./autogen.sh
514 ./configure CFLAGS="-O2 -pipe" \
515 --prefix=${MEMCACHED_PREFIX} \
516 --enable-sasl \
517 --enable-sasl-pwdb \
518 --disable-coverage \
519 --disable-dependency-tracking \
520 --disable-docs \
521 --disable-extstore \
522 --disable-option-checking \
523 ;
524 make -j2
525 make install
526 cd ..
527 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
528 fi
529 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
530 run: cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
531 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
532 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
533 - name: Test
534 if: env.BUILD_TESTING == 'ON'
535 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
536 - name: Install
537 if: env.BUILD_TESTING == 'ON'
538 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
539 - name: Failed tests log
540 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
541 run: cat build/Testing/Temporary/LastTest.log || true
542 - name: Package
543 env:
544 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
545 if: env.PUSH_ARTIFACTS_ID != '' && env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
546 run: |
547 cmake -DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} -S . -B build
548 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
549 cmake -DCPACK_COMPONENT_INSTALL=ON build
550 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
551 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
552 - name: Notify Gitter
553 env:
554 GITTER: ${{ secrets.GITTER }}
555 if: (success() || failure()) && env.GITTER != ''
556 run: bash .github/notify-gitter.sh ${{ job.status }}