ci: gh-actions: package: exclude only conflicting ubuntu18-gnu-new
[m6w6/libmemcached] / .github / workflows / cmake-build-ci.yml
1 # Generated file; do not edit!
2 name: cmake-build-ci
3 on:
4 push:
5 paths:
6 - "contrib/**"
7 - "include/**"
8 - "src/**"
9 - "test/**"
10 - "CMake*"
11 - "CPack*"
12 - ".github/workflows/cmake-build-ci*"
13 branches-ignore:
14 - gh-pages
15 pull_request:
16 branches:
17 - master
18 - v1.x
19 env:
20 # defaults
21 INSTALL_MEMCACHED: memcached
22 ENABLE_SASL: "OFF" # ^ almost no memcached distribution package has built in sasl support
23 ENABLE_HASH_HSIEH: "ON"
24 ENABLE_DTRACE: "OFF"
25 OS_VND: Linux #
26 OS_VER: ubuntu-20.04 #
27 CC_VND: gnu #
28 CC_VER: cur #
29
30 jobs:
31
32 # new memcached
33 dbg-new:
34 name: dbg-new (ubuntu-20.04, gnu, cur)
35 runs-on: ubuntu-20.04 #
36 env:
37 CMAKE_BUILD_TYPE: "Debug"
38 BUILD_TESTING: "ON"
39 VERBOSE: "ON"
40 CFLAGS: "-O0 --coverage"
41 CXXFLAGS: "-O0 --coverage"
42 INSTALL_MEMCACHED: ""
43 MEMCACHED_PREFIX: "/tmp"
44 ENABLE_SASL: "ON"
45 steps:
46 - uses: actions/checkout@v2
47 - uses: actions/checkout@v2
48 with:
49 repository: memcached/memcached
50 path: memcached
51 ref: 1.6.7
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')
54 run: |
55 echo CC="gcc-9" >> ${GITHUB_ENV}
56 echo CXX="g++-9" >> ${GITHUB_ENV}
57 - name: Install dependencies (Linux)
58 if: runner.os == 'Linux'
59 run: |
60 sudo apt-get install -my \
61 libevent-dev \
62 libsasl2-dev \
63 libtbb-dev \
64 python3-sphinx \
65 ${INSTALL_MEMCACHED} \
66 ${INSTALL_CC} ${INSTALL_CXX}
67 sudo systemctl stop memcached || true
68 - name: Build memcached
69 if: runner.os != 'Windows'
70 run: |
71 if test -d memcached
72 then
73 cd memcached
74 ./autogen.sh
75 ./configure CFLAGS="-O2 -pipe" \
76 --prefix=${MEMCACHED_PREFIX} \
77 --enable-sasl \
78 --enable-sasl-pwdb \
79 --disable-coverage \
80 --disable-dependency-tracking \
81 --disable-docs \
82 --disable-extstore \
83 --disable-option-checking \
84 ;
85 make -j2
86 make install
87 cd ..
88 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
89 fi
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
94 - name: Test
95 if: env.BUILD_TESTING == 'ON'
96 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
97 - name: Install
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
103 - name: Package
104 env:
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 ')
107 run: |
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
116
117 # sanitizer build
118 sanitizer:
119 runs-on: ubuntu-20.04 #
120 strategy:
121 matrix:
122 sanitizer: ['address;undefined', 'thread']
123 env:
124 CMAKE_BUILD_TYPE: "Debug"
125 BUILD_TESTING: "ON"
126 VERBOSE: "ON"
127 ENABLE_SANITIZERS: ${{ matrix.sanitizer }}
128 steps:
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')
132 run: |
133 echo CC="gcc-9" >> ${GITHUB_ENV}
134 echo CXX="g++-9" >> ${GITHUB_ENV}
135 - name: Install dependencies (Linux)
136 if: runner.os == 'Linux'
137 run: |
138 sudo apt-get install -my \
139 libevent-dev \
140 libsasl2-dev \
141 libtbb-dev \
142 python3-sphinx \
143 ${INSTALL_MEMCACHED} \
144 ${INSTALL_CC} ${INSTALL_CXX}
145 sudo systemctl stop memcached || true
146 - name: Build memcached
147 if: runner.os != 'Windows'
148 run: |
149 if test -d memcached
150 then
151 cd memcached
152 ./autogen.sh
153 ./configure CFLAGS="-O2 -pipe" \
154 --prefix=${MEMCACHED_PREFIX} \
155 --enable-sasl \
156 --enable-sasl-pwdb \
157 --disable-coverage \
158 --disable-dependency-tracking \
159 --disable-docs \
160 --disable-extstore \
161 --disable-option-checking \
162 ;
163 make -j2
164 make install
165 cd ..
166 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
167 fi
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
172 - name: Test
173 if: env.BUILD_TESTING == 'ON'
174 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
175 - name: Install
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
181 - name: Package
182 env:
183 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
184 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
185 run: |
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 }}
193
194 # mac debug
195 dbg-mac:
196 name: dbg-mac (macos-10.15, clang, cur)
197 runs-on: macos-10.15 #
198 env:
199 CMAKE_BUILD_TYPE: "Debug"
200 BUILD_TESTING: "ON"
201 VERBOSE: "ON"
202 CFLAGS: "-O0 --coverage"
203 CXXFLAGS: "-O0 --coverage"
204 OS_VND: macOS #
205 OS_VER: macos-10.15 #
206 CC_VND: clang #
207 CC_VER: cur #
208 continue-on-error: true
209 steps:
210 - uses: actions/checkout@v2
211 - name: Install dependencies (macOS)
212 if: runner.os == 'macOS'
213 run: |
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'
219 run: |
220 if test -d memcached
221 then
222 cd memcached
223 ./autogen.sh
224 ./configure CFLAGS="-O2 -pipe" \
225 --prefix=${MEMCACHED_PREFIX} \
226 --enable-sasl \
227 --enable-sasl-pwdb \
228 --disable-coverage \
229 --disable-dependency-tracking \
230 --disable-docs \
231 --disable-extstore \
232 --disable-option-checking \
233 ;
234 make -j2
235 make install
236 cd ..
237 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
238 fi
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
243 - name: Test
244 if: env.BUILD_TESTING == 'ON'
245 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
246 - name: Install
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
252 - name: Package
253 env:
254 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
255 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
256 run: |
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
265
266 # mac release
267 rel-mac:
268 name: rel-mac (macos-10.15, clang, cur)
269 runs-on: macos-10.15 #
270 env:
271 CMAKE_BUILD_TYPE: "Release"
272 BUILD_DOCS_MANGZ: "ON"
273 OS_VND: macOS #
274 OS_VER: macos-10.15 #
275 CC_VND: clang #
276 CC_VER: cur #
277 continue-on-error: true
278 steps:
279 - uses: actions/checkout@v2
280 with:
281 fetch-depth: 0
282 - name: Install dependencies (macOS)
283 if: runner.os == 'macOS'
284 run: |
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'
290 run: |
291 if test -d memcached
292 then
293 cd memcached
294 ./autogen.sh
295 ./configure CFLAGS="-O2 -pipe" \
296 --prefix=${MEMCACHED_PREFIX} \
297 --enable-sasl \
298 --enable-sasl-pwdb \
299 --disable-coverage \
300 --disable-dependency-tracking \
301 --disable-docs \
302 --disable-extstore \
303 --disable-option-checking \
304 ;
305 make -j2
306 make install
307 cd ..
308 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
309 fi
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
314 - name: Test
315 if: env.BUILD_TESTING == 'ON'
316 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
317 - name: Install
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
323 - name: Package
324 env:
325 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
326 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
327 run: |
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 }}
335
336 # windows release builds
337 windows:
338 strategy:
339 fail-fast: false
340 matrix:
341 os_ver: [windows-2019]
342 cc_vnd: [msvc, mingw]
343 cc_ver: [cur]
344 runs-on: ${{ matrix.os_ver }}
345 continue-on-error: true
346 env:
347 CMAKE_BUILD_TYPE: "Release"
348 OS_VND: Windows
349 OS_VER: ${{ matrix.os_ver }}
350 CC_VND: ${{ matrix.cc_vnd }}
351 CC_VER: ${{ matrix.cc_ver }}
352 steps:
353 - uses: actions/checkout@v2
354 with:
355 fetch-depth: 0
356 - name: Prepare environment (Windows)
357 run: |
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'
362 run: |
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
367 with:
368 release: false
369 path-type: inherit
370 install: >-
371 rsync
372 openssh
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
377 - name: Test
378 if: env.BUILD_TESTING == 'ON'
379 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
380 - name: Install
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
386 - name: Package
387 env:
388 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
389 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
390 run: |
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 }}
398
399 # linux release builds
400 release:
401 strategy:
402 fail-fast: false
403 matrix:
404 os_ver: [ubuntu-20.04, ubuntu-18.04]
405 cc_vnd: [gnu, clang]
406 cc_ver: [new, cur, old]
407 runs-on: ${{ matrix.os_ver }}
408 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
409 env:
410 CMAKE_BUILD_TYPE: "Release"
411 BUILD_DOCS_MANGZ: "ON"
412 OS_VND: Linux
413 OS_VER: ${{ matrix.os_ver }}
414 CC_VND: ${{ matrix.cc_vnd }}
415 CC_VER: ${{ matrix.cc_ver }}
416 steps:
417 - uses: actions/checkout@v2
418 with:
419 fetch-depth: 0
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')
422 run: |
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')
429 run: |
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')
434 run: |
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')
439 run: |
440 echo CC="clang-10" >> ${GITHUB_ENV}
441 echo CXX="clang++-10" >> ${GITHUB_ENV}
442 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
443 - name: Prepare environment (for cur clang on ubuntu-20.04)
444 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
445 run: |
446 echo CC="clang-9" >> ${GITHUB_ENV}
447 echo CXX="clang++-9" >> ${GITHUB_ENV}
448 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
449 - name: Prepare environment (for old clang on ubuntu-20.04)
450 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
451 run: |
452 echo CC="clang-8" >> ${GITHUB_ENV}
453 echo CXX="clang++-8" >> ${GITHUB_ENV}
454 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
455 - name: Prepare environment (for new gnu on ubuntu-18.04)
456 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
457 run: |
458 echo CC="gcc-9" >> ${GITHUB_ENV}
459 echo CXX="g++-9" >> ${GITHUB_ENV}
460 - name: Prepare environment (for cur gnu on ubuntu-18.04)
461 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
462 run: |
463 echo CC="gcc-8" >> ${GITHUB_ENV}
464 echo CXX="g++-8" >> ${GITHUB_ENV}
465 - name: Prepare environment (for old gnu on ubuntu-18.04)
466 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
467 run: |
468 echo CC="gcc-7" >> ${GITHUB_ENV}
469 echo CXX="g++-7" >> ${GITHUB_ENV}
470 - name: Prepare environment (for new clang on ubuntu-18.04)
471 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
472 run: |
473 echo CC="clang-9" >> ${GITHUB_ENV}
474 echo CXX="clang++-9" >> ${GITHUB_ENV}
475 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
476 - name: Prepare environment (for cur clang on ubuntu-18.04)
477 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
478 run: |
479 echo CC="clang-8" >> ${GITHUB_ENV}
480 echo CXX="clang++-8" >> ${GITHUB_ENV}
481 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
482 - name: Prepare environment (for old clang on ubuntu-18.04)
483 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
484 run: |
485 echo CC="clang-6.0" >> ${GITHUB_ENV}
486 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
487 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
488 - name: Install dependencies (Linux)
489 if: runner.os == 'Linux'
490 run: |
491 sudo apt-get install -my \
492 libevent-dev \
493 libsasl2-dev \
494 libtbb-dev \
495 python3-sphinx \
496 ${INSTALL_MEMCACHED} \
497 ${INSTALL_CC} ${INSTALL_CXX}
498 sudo systemctl stop memcached || true
499 - name: Build memcached
500 if: runner.os != 'Windows'
501 run: |
502 if test -d memcached
503 then
504 cd memcached
505 ./autogen.sh
506 ./configure CFLAGS="-O2 -pipe" \
507 --prefix=${MEMCACHED_PREFIX} \
508 --enable-sasl \
509 --enable-sasl-pwdb \
510 --disable-coverage \
511 --disable-dependency-tracking \
512 --disable-docs \
513 --disable-extstore \
514 --disable-option-checking \
515 ;
516 make -j2
517 make install
518 cd ..
519 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
520 fi
521 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
522 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
523 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
524 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
525 - name: Test
526 if: env.BUILD_TESTING == 'ON'
527 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
528 - name: Install
529 if: env.BUILD_TESTING == 'ON'
530 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
531 - name: Failed tests log
532 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
533 run: cat build/Testing/Temporary/LastTest.log || true
534 - name: Package
535 env:
536 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
537 if: env.CMAKE_BUILD_TYPE == 'Release' && !(env.OS_VER == 'ubuntu-18.04' && env.CC_VND == 'gnu' && env.CC_VER == 'new ')
538 run: |
539 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
540 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
541 cmake -DCPACK_COMPONENT_INSTALL=ON build
542 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
543 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
544 - name: Notify Gitter
545 run: bash .github/notify-gitter.sh ${{ secrets.GITTER }} ${{ job.status }}