ci: gh-actions: mingw: install git
[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: Install dependencies (Mac)
69 if: runner.os == 'macOS'
70 run: |
71 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
72 brew services stop memcached || true
73 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
74 - name: Build memcached
75 if: runner.os != 'Windows'
76 run: |
77 if test -d memcached
78 then
79 cd memcached
80 ./autogen.sh
81 ./configure CFLAGS="-O2 -pipe" \
82 --prefix=${MEMCACHED_PREFIX} \
83 --enable-sasl \
84 --enable-sasl-pwdb \
85 --disable-coverage \
86 --disable-dependency-tracking \
87 --disable-docs \
88 --disable-extstore \
89 --disable-option-checking \
90 ;
91 make -j2
92 make install
93 cd ..
94 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
95 fi
96 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
97 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
98 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
99 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
100 - name: Test
101 if: env.BUILD_TESTING == 'ON'
102 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
103 - name: Install
104 if: env.BUILD_TESTING == 'ON'
105 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
106 - name: Failed tests log
107 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
108 run: cat build/Testing/Temporary/LastTest.log || true
109 - name: Package
110 env:
111 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
112 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
113 run: |
114 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
115 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
116 cmake -DCPACK_COMPONENT_INSTALL=ON build
117 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
118 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
119 - name: Notify Gitter (success)
120 if: ${{ success() && runner.os != 'Windows'}}
121 run: |
122 REF=$(basename ${GITHUB_REF})
123 curl -sS "${{ secrets.GITTER }}" \
124 --data-urlencode "level=info" \
125 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
126 - name: Notify Gitter (failure)
127 if: ${{ failure() && runner.os != 'Windows'}}
128 run: |
129 REF=$(basename ${GITHUB_REF})
130 curl -sS "${{ secrets.GITTER }}" \
131 --data-urlencode "level=error" \
132 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
133 - uses: codecov/codecov-action@v1.0.13
134
135 # sanitizer build
136 dbg-san:
137 name: dbg-san (ubuntu-20.04, gnu, cur)
138 runs-on: ubuntu-20.04 #
139 env:
140 CMAKE_BUILD_TYPE: "Debug"
141 BUILD_TESTING: "ON"
142 VERBOSE: "ON"
143 ENABLE_SANITIZERS: "address;undefined"
144 steps:
145 - uses: actions/checkout@v2
146 - name: Prepare environment (for cur gnu on ubuntu-20.04)
147 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
148 run: |
149 echo CC="gcc-9" >> ${GITHUB_ENV}
150 echo CXX="g++-9" >> ${GITHUB_ENV}
151 - name: Install dependencies (Linux)
152 if: runner.os == 'Linux'
153 run: |
154 sudo apt-get install -my \
155 libevent-dev \
156 libsasl2-dev \
157 libtbb-dev \
158 python3-sphinx \
159 ${INSTALL_MEMCACHED} \
160 ${INSTALL_CC} ${INSTALL_CXX}
161 sudo systemctl stop memcached || true
162 - name: Install dependencies (Mac)
163 if: runner.os == 'macOS'
164 run: |
165 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
166 brew services stop memcached || true
167 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
168 - name: Build memcached
169 if: runner.os != 'Windows'
170 run: |
171 if test -d memcached
172 then
173 cd memcached
174 ./autogen.sh
175 ./configure CFLAGS="-O2 -pipe" \
176 --prefix=${MEMCACHED_PREFIX} \
177 --enable-sasl \
178 --enable-sasl-pwdb \
179 --disable-coverage \
180 --disable-dependency-tracking \
181 --disable-docs \
182 --disable-extstore \
183 --disable-option-checking \
184 ;
185 make -j2
186 make install
187 cd ..
188 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
189 fi
190 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
191 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
192 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
193 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
194 - name: Test
195 if: env.BUILD_TESTING == 'ON'
196 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
197 - name: Install
198 if: env.BUILD_TESTING == 'ON'
199 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
200 - name: Failed tests log
201 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
202 run: cat build/Testing/Temporary/LastTest.log || true
203 - name: Package
204 env:
205 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
206 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
207 run: |
208 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
209 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
210 cmake -DCPACK_COMPONENT_INSTALL=ON build
211 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
212 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
213 - name: Notify Gitter (success)
214 if: ${{ success() && runner.os != 'Windows'}}
215 run: |
216 REF=$(basename ${GITHUB_REF})
217 curl -sS "${{ secrets.GITTER }}" \
218 --data-urlencode "level=info" \
219 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
220 - name: Notify Gitter (failure)
221 if: ${{ failure() && runner.os != 'Windows'}}
222 run: |
223 REF=$(basename ${GITHUB_REF})
224 curl -sS "${{ secrets.GITTER }}" \
225 --data-urlencode "level=error" \
226 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
227
228 # thread sanitizer build
229 dbg-tsan:
230 name: dbg-tsan (ubuntu-20.04, gnu, cur)
231 runs-on: ubuntu-20.04 #
232 env:
233 CMAKE_BUILD_TYPE: "Debug"
234 BUILD_TESTING: "ON"
235 VERBOSE: "ON"
236 ENABLE_SANITIZERS: "thread"
237 steps:
238 - uses: actions/checkout@v2
239 - name: Prepare environment (for cur gnu on ubuntu-20.04)
240 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
241 run: |
242 echo CC="gcc-9" >> ${GITHUB_ENV}
243 echo CXX="g++-9" >> ${GITHUB_ENV}
244 - name: Install dependencies (Linux)
245 if: runner.os == 'Linux'
246 run: |
247 sudo apt-get install -my \
248 libevent-dev \
249 libsasl2-dev \
250 libtbb-dev \
251 python3-sphinx \
252 ${INSTALL_MEMCACHED} \
253 ${INSTALL_CC} ${INSTALL_CXX}
254 sudo systemctl stop memcached || true
255 - name: Install dependencies (Mac)
256 if: runner.os == 'macOS'
257 run: |
258 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
259 brew services stop memcached || true
260 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
261 - name: Build memcached
262 if: runner.os != 'Windows'
263 run: |
264 if test -d memcached
265 then
266 cd memcached
267 ./autogen.sh
268 ./configure CFLAGS="-O2 -pipe" \
269 --prefix=${MEMCACHED_PREFIX} \
270 --enable-sasl \
271 --enable-sasl-pwdb \
272 --disable-coverage \
273 --disable-dependency-tracking \
274 --disable-docs \
275 --disable-extstore \
276 --disable-option-checking \
277 ;
278 make -j2
279 make install
280 cd ..
281 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
282 fi
283 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
284 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
285 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
286 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
287 - name: Test
288 if: env.BUILD_TESTING == 'ON'
289 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
290 - name: Install
291 if: env.BUILD_TESTING == 'ON'
292 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
293 - name: Failed tests log
294 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
295 run: cat build/Testing/Temporary/LastTest.log || true
296 - name: Package
297 env:
298 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
299 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
300 run: |
301 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
302 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
303 cmake -DCPACK_COMPONENT_INSTALL=ON build
304 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
305 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
306 - name: Notify Gitter (success)
307 if: ${{ success() && runner.os != 'Windows'}}
308 run: |
309 REF=$(basename ${GITHUB_REF})
310 curl -sS "${{ secrets.GITTER }}" \
311 --data-urlencode "level=info" \
312 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
313 - name: Notify Gitter (failure)
314 if: ${{ failure() && runner.os != 'Windows'}}
315 run: |
316 REF=$(basename ${GITHUB_REF})
317 curl -sS "${{ secrets.GITTER }}" \
318 --data-urlencode "level=error" \
319 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
320
321 # mac debug
322 dbg-mac:
323 name: dbg-mac (macos-10.15, clang, cur)
324 runs-on: macos-10.15 #
325 env:
326 CMAKE_BUILD_TYPE: "Debug"
327 BUILD_TESTING: "ON"
328 VERBOSE: "ON"
329 CFLAGS: "-O0 --coverage"
330 CXXFLAGS: "-O0 --coverage"
331 OS_VND: macOS #
332 OS_VER: macos-10.15 #
333 CC_VND: clang #
334 CC_VER: cur #
335 #
336 continue-on-error: true
337 steps:
338 - uses: actions/checkout@v2
339 - name: Install dependencies (Linux)
340 if: runner.os == 'Linux'
341 run: |
342 sudo apt-get install -my \
343 libevent-dev \
344 libsasl2-dev \
345 libtbb-dev \
346 python3-sphinx \
347 ${INSTALL_MEMCACHED} \
348 ${INSTALL_CC} ${INSTALL_CXX}
349 sudo systemctl stop memcached || true
350 - name: Install dependencies (Mac)
351 if: runner.os == 'macOS'
352 run: |
353 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
354 brew services stop memcached || true
355 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
356 - name: Build memcached
357 if: runner.os != 'Windows'
358 run: |
359 if test -d memcached
360 then
361 cd memcached
362 ./autogen.sh
363 ./configure CFLAGS="-O2 -pipe" \
364 --prefix=${MEMCACHED_PREFIX} \
365 --enable-sasl \
366 --enable-sasl-pwdb \
367 --disable-coverage \
368 --disable-dependency-tracking \
369 --disable-docs \
370 --disable-extstore \
371 --disable-option-checking \
372 ;
373 make -j2
374 make install
375 cd ..
376 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
377 fi
378 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
379 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
380 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
381 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
382 - name: Test
383 if: env.BUILD_TESTING == 'ON'
384 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
385 - name: Install
386 if: env.BUILD_TESTING == 'ON'
387 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
388 - name: Failed tests log
389 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
390 run: cat build/Testing/Temporary/LastTest.log || true
391 - name: Package
392 env:
393 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
394 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
395 run: |
396 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
397 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
398 cmake -DCPACK_COMPONENT_INSTALL=ON build
399 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
400 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
401 - name: Notify Gitter (success)
402 if: ${{ success() && runner.os != 'Windows'}}
403 run: |
404 REF=$(basename ${GITHUB_REF})
405 curl -sS "${{ secrets.GITTER }}" \
406 --data-urlencode "level=info" \
407 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
408 - name: Notify Gitter (failure)
409 if: ${{ failure() && runner.os != 'Windows'}}
410 run: |
411 REF=$(basename ${GITHUB_REF})
412 curl -sS "${{ secrets.GITTER }}" \
413 --data-urlencode "level=error" \
414 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
415 - uses: codecov/codecov-action@v1.0.13
416
417 # mac release
418 rel-mac:
419 name: rel-mac (macos-10.15, clang, cur)
420 runs-on: macos-10.15 #
421 env:
422 CMAKE_BUILD_TYPE: "Release"
423 BUILD_DOCS_MANGZ: "ON"
424 OS_VND: macOS #
425 OS_VER: macos-10.15 #
426 CC_VND: clang #
427 CC_VER: cur #
428 continue-on-error: true
429 steps:
430 - uses: actions/checkout@v2
431 with:
432 fetch-depth: 0
433 - name: Install dependencies (Linux)
434 if: runner.os == 'Linux'
435 run: |
436 sudo apt-get install -my \
437 libevent-dev \
438 libsasl2-dev \
439 libtbb-dev \
440 python3-sphinx \
441 ${INSTALL_MEMCACHED} \
442 ${INSTALL_CC} ${INSTALL_CXX}
443 sudo systemctl stop memcached || true
444 - name: Install dependencies (Mac)
445 if: runner.os == 'macOS'
446 run: |
447 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
448 brew services stop memcached || true
449 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
450 - name: Build memcached
451 if: runner.os != 'Windows'
452 run: |
453 if test -d memcached
454 then
455 cd memcached
456 ./autogen.sh
457 ./configure CFLAGS="-O2 -pipe" \
458 --prefix=${MEMCACHED_PREFIX} \
459 --enable-sasl \
460 --enable-sasl-pwdb \
461 --disable-coverage \
462 --disable-dependency-tracking \
463 --disable-docs \
464 --disable-extstore \
465 --disable-option-checking \
466 ;
467 make -j2
468 make install
469 cd ..
470 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
471 fi
472 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
473 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
474 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
475 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
476 - name: Test
477 if: env.BUILD_TESTING == 'ON'
478 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
479 - name: Install
480 if: env.BUILD_TESTING == 'ON'
481 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
482 - name: Failed tests log
483 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
484 run: cat build/Testing/Temporary/LastTest.log || true
485 - name: Package
486 env:
487 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
488 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
489 run: |
490 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
491 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
492 cmake -DCPACK_COMPONENT_INSTALL=ON build
493 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
494 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
495 - name: Notify Gitter (success)
496 if: ${{ success() && runner.os != 'Windows'}}
497 run: |
498 REF=$(basename ${GITHUB_REF})
499 curl -sS "${{ secrets.GITTER }}" \
500 --data-urlencode "level=info" \
501 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
502 - name: Notify Gitter (failure)
503 if: ${{ failure() && runner.os != 'Windows'}}
504 run: |
505 REF=$(basename ${GITHUB_REF})
506 curl -sS "${{ secrets.GITTER }}" \
507 --data-urlencode "level=error" \
508 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
509
510 # win msvc build
511 win-msvc:
512 name: win-msvc (windows-2019, msvc, cur)
513 runs-on: windows-2019 #
514 env:
515 CMAKE_BUILD_TYPE: "Release"
516 BISON_ROOT: "C:/msys64/usr"
517 FLEX_ROOT: "C:/msys64/usr"
518 OS_VND: Windows #
519 OS_VER: windows-2019 #
520 CC_VND: msvc #
521 CC_VER: cur #
522 continue-on-error: true
523 steps:
524 - uses: actions/checkout@v2
525 with:
526 fetch-depth: 0
527 - uses: msys2/setup-msys2@v2
528 with:
529 release: false
530 path-type: inherit
531 install: >-
532 rsync
533 openssh
534 - name: Install dependencies (Linux)
535 if: runner.os == 'Linux'
536 run: |
537 sudo apt-get install -my \
538 libevent-dev \
539 libsasl2-dev \
540 libtbb-dev \
541 python3-sphinx \
542 ${INSTALL_MEMCACHED} \
543 ${INSTALL_CC} ${INSTALL_CXX}
544 sudo systemctl stop memcached || true
545 - name: Install dependencies (Mac)
546 if: runner.os == 'macOS'
547 run: |
548 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
549 brew services stop memcached || true
550 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
551 - name: Build memcached
552 if: runner.os != 'Windows'
553 run: |
554 if test -d memcached
555 then
556 cd memcached
557 ./autogen.sh
558 ./configure CFLAGS="-O2 -pipe" \
559 --prefix=${MEMCACHED_PREFIX} \
560 --enable-sasl \
561 --enable-sasl-pwdb \
562 --disable-coverage \
563 --disable-dependency-tracking \
564 --disable-docs \
565 --disable-extstore \
566 --disable-option-checking \
567 ;
568 make -j2
569 make install
570 cd ..
571 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
572 fi
573 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
574 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
575 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
576 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
577 - name: Test
578 if: env.BUILD_TESTING == 'ON'
579 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
580 - name: Install
581 if: env.BUILD_TESTING == 'ON'
582 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
583 - name: Failed tests log
584 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
585 run: cat build/Testing/Temporary/LastTest.log || true
586 - name: Package
587 env:
588 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
589 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
590 run: |
591 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
592 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
593 cmake -DCPACK_COMPONENT_INSTALL=ON build
594 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
595 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
596 - name: Notify Gitter (success)
597 if: ${{ success() && runner.os != 'Windows'}}
598 run: |
599 REF=$(basename ${GITHUB_REF})
600 curl -sS "${{ secrets.GITTER }}" \
601 --data-urlencode "level=info" \
602 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
603 - name: Notify Gitter (failure)
604 if: ${{ failure() && runner.os != 'Windows'}}
605 run: |
606 REF=$(basename ${GITHUB_REF})
607 curl -sS "${{ secrets.GITTER }}" \
608 --data-urlencode "level=error" \
609 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
610
611 # win mingw build (set PATH=%PATH%;c:\msys64\mingw64\bin)
612 win-mingw:
613 name: win-mingw (windows-2019, mingw, cur)
614 runs-on: windows-2019 #
615 env:
616 CMAKE_BUILD_TYPE: "Release"
617 CMAKE_GENERATOR: "MinGW Makefiles"
618 BISON_ROOT: "C:/msys64/usr"
619 FLEX_ROOT: "C:/msys64/usr"
620 OS_VND: Windows #
621 OS_VER: windows-2019 #
622 CC_VND: mingw #
623 CC_VER: cur #
624 continue-on-error: true
625 steps:
626 - uses: actions/checkout@v2
627 - uses: msys2/setup-msys2@v2
628 with:
629 release: false
630 install: >-
631 rsync
632 openssh
633 mingw-w64-x86_64-toolchain
634 git
635 - name: Install dependencies (Linux)
636 if: runner.os == 'Linux'
637 run: |
638 sudo apt-get install -my \
639 libevent-dev \
640 libsasl2-dev \
641 libtbb-dev \
642 python3-sphinx \
643 ${INSTALL_MEMCACHED} \
644 ${INSTALL_CC} ${INSTALL_CXX}
645 sudo systemctl stop memcached || true
646 - name: Install dependencies (Mac)
647 if: runner.os == 'macOS'
648 run: |
649 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
650 brew services stop memcached || true
651 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
652 - name: Build memcached
653 if: runner.os != 'Windows'
654 run: |
655 if test -d memcached
656 then
657 cd memcached
658 ./autogen.sh
659 ./configure CFLAGS="-O2 -pipe" \
660 --prefix=${MEMCACHED_PREFIX} \
661 --enable-sasl \
662 --enable-sasl-pwdb \
663 --disable-coverage \
664 --disable-dependency-tracking \
665 --disable-docs \
666 --disable-extstore \
667 --disable-option-checking \
668 ;
669 make -j2
670 make install
671 cd ..
672 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
673 fi
674 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
675 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
676 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
677 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
678 - name: Test
679 if: env.BUILD_TESTING == 'ON'
680 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
681 - name: Install
682 if: env.BUILD_TESTING == 'ON'
683 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
684 - name: Failed tests log
685 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
686 run: cat build/Testing/Temporary/LastTest.log || true
687 - name: Package
688 env:
689 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
690 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
691 run: |
692 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
693 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
694 cmake -DCPACK_COMPONENT_INSTALL=ON build
695 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
696 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
697 - name: Notify Gitter (success)
698 if: ${{ success() && runner.os != 'Windows'}}
699 run: |
700 REF=$(basename ${GITHUB_REF})
701 curl -sS "${{ secrets.GITTER }}" \
702 --data-urlencode "level=info" \
703 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
704 - name: Notify Gitter (failure)
705 if: ${{ failure() && runner.os != 'Windows'}}
706 run: |
707 REF=$(basename ${GITHUB_REF})
708 curl -sS "${{ secrets.GITTER }}" \
709 --data-urlencode "level=error" \
710 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
711
712 # linux release builds
713 release:
714 strategy:
715 fail-fast: false
716 matrix:
717 os_ver: [ubuntu-20.04, ubuntu-18.04]
718 cc_vnd: [gnu, clang]
719 cc_ver: [new, cur, old]
720 runs-on: ${{ matrix.os_ver }}
721 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
722 env:
723 CMAKE_BUILD_TYPE: "Release"
724 BUILD_DOCS_MANGZ: "ON"
725 OS_VND: Linux
726 OS_VER: ${{ matrix.os_ver }}
727 CC_VND: ${{ matrix.cc_vnd }}
728 CC_VER: ${{ matrix.cc_ver }}
729 steps:
730 - uses: actions/checkout@v2
731 with:
732 fetch-depth: 0
733 - name: Prepare environment (for new gnu on ubuntu-20.04)
734 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
735 run: |
736 echo CC="gcc-10" >> ${GITHUB_ENV}
737 echo CXX="g++-10" >> ${GITHUB_ENV}
738 echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
739 echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
740 - name: Prepare environment (for cur gnu on ubuntu-20.04)
741 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
742 run: |
743 echo CC="gcc-9" >> ${GITHUB_ENV}
744 echo CXX="g++-9" >> ${GITHUB_ENV}
745 - name: Prepare environment (for old gnu on ubuntu-20.04)
746 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
747 run: |
748 echo CC="gcc-8" >> ${GITHUB_ENV}
749 echo CXX="g++-8" >> ${GITHUB_ENV}
750 - name: Prepare environment (for new clang on ubuntu-20.04)
751 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
752 run: |
753 echo CC="clang-10" >> ${GITHUB_ENV}
754 echo CXX="clang++-10" >> ${GITHUB_ENV}
755 - name: Prepare environment (for cur clang on ubuntu-20.04)
756 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
757 run: |
758 echo CC="clang-9" >> ${GITHUB_ENV}
759 echo CXX="clang++-9" >> ${GITHUB_ENV}
760 - name: Prepare environment (for old clang on ubuntu-20.04)
761 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
762 run: |
763 echo CC="clang-8" >> ${GITHUB_ENV}
764 echo CXX="clang++-8" >> ${GITHUB_ENV}
765 - name: Prepare environment (for new gnu on ubuntu-18.04)
766 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
767 run: |
768 echo CC="gcc-9" >> ${GITHUB_ENV}
769 echo CXX="g++-9" >> ${GITHUB_ENV}
770 - name: Prepare environment (for cur gnu on ubuntu-18.04)
771 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
772 run: |
773 echo CC="gcc-8" >> ${GITHUB_ENV}
774 echo CXX="g++-8" >> ${GITHUB_ENV}
775 - name: Prepare environment (for old gnu on ubuntu-18.04)
776 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
777 run: |
778 echo CC="gcc-7" >> ${GITHUB_ENV}
779 echo CXX="g++-7" >> ${GITHUB_ENV}
780 - name: Prepare environment (for new clang on ubuntu-18.04)
781 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
782 run: |
783 echo CC="clang-9" >> ${GITHUB_ENV}
784 echo CXX="clang++-9" >> ${GITHUB_ENV}
785 - name: Prepare environment (for cur clang on ubuntu-18.04)
786 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
787 run: |
788 echo CC="clang-8" >> ${GITHUB_ENV}
789 echo CXX="clang++-8" >> ${GITHUB_ENV}
790 - name: Prepare environment (for old clang on ubuntu-18.04)
791 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
792 run: |
793 echo CC="clang-6.0" >> ${GITHUB_ENV}
794 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
795 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
796 - name: Install dependencies (Linux)
797 if: runner.os == 'Linux'
798 run: |
799 sudo apt-get install -my \
800 libevent-dev \
801 libsasl2-dev \
802 libtbb-dev \
803 python3-sphinx \
804 ${INSTALL_MEMCACHED} \
805 ${INSTALL_CC} ${INSTALL_CXX}
806 sudo systemctl stop memcached || true
807 - name: Install dependencies (Mac)
808 if: runner.os == 'macOS'
809 run: |
810 brew install bison flex sphinx-doc ${INSTALL_MEMCACHED}
811 brew services stop memcached || true
812 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
813 - name: Build memcached
814 if: runner.os != 'Windows'
815 run: |
816 if test -d memcached
817 then
818 cd memcached
819 ./autogen.sh
820 ./configure CFLAGS="-O2 -pipe" \
821 --prefix=${MEMCACHED_PREFIX} \
822 --enable-sasl \
823 --enable-sasl-pwdb \
824 --disable-coverage \
825 --disable-dependency-tracking \
826 --disable-docs \
827 --disable-extstore \
828 --disable-option-checking \
829 ;
830 make -j2
831 make install
832 cd ..
833 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
834 fi
835 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
836 run: cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
837 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
838 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2
839 - name: Test
840 if: env.BUILD_TESTING == 'ON'
841 run: cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target test
842 - name: Install
843 if: env.BUILD_TESTING == 'ON'
844 run: cmake --install build --config ${{ env.CMAKE_BUILD_TYPE }} --prefix /tmp
845 - name: Failed tests log
846 if: ${{ env.BUILD_TESTING == 'ON' && failure() }}
847 run: cat build/Testing/Temporary/LastTest.log || true
848 - name: Package
849 env:
850 PUSH_ARTIFACTS_ID: ${{ secrets.PUSH_ARTIFACTS_ID }}
851 if: env.CC_VER == 'cur' && env.CMAKE_BUILD_TYPE == 'Release'
852 run: |
853 cmake --config ${{ env.CMAKE_BUILD_TYPE }} -S . -B build
854 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
855 cmake -DCPACK_COMPONENT_INSTALL=ON build
856 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target package
857 cmake --build build --config ${{ env.CMAKE_BUILD_TYPE }} -j2 --target push-artifacts
858 - name: Notify Gitter (success)
859 if: ${{ success() && runner.os != 'Windows'}}
860 run: |
861 REF=$(basename ${GITHUB_REF})
862 curl -sS "${{ secrets.GITTER }}" \
863 --data-urlencode "level=info" \
864 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [success](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"
865 - name: Notify Gitter (failure)
866 if: ${{ failure() && runner.os != 'Windows'}}
867 run: |
868 REF=$(basename ${GITHUB_REF})
869 curl -sS "${{ secrets.GITTER }}" \
870 --data-urlencode "level=error" \
871 --data-urlencode "message=Github [${GITHUB_REPOSITORY}](https://github.com/${GITHUB_REPOSITORY}/commits/${REF}) (${REF}) [failure](https://github.com/m6w6/libmemcached/actions/runs/${GITHUB_RUN_ID}) (${ImageOS}/${CC:-${CC_VND}-${CC_VER}})"