testing: attempt to speedup freebsd build
[awesomized/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 - "include/**"
7 - "src/**"
8 - "test/**"
9 - "CMake*"
10 - ".github/workflows/cmake-build-ci*"
11 branches-ignore:
12 - gh-pages
13 pull_request:
14 branches:
15 - master
16 - v1.x
17 env:
18 # defaults
19 INSTALL_MEMCACHED: memcached
20 CMAKE_BUILD_TYPE: Debug
21 BUILD_TESTING: "ON"
22 ENABLE_SASL: "OFF"
23 ENABLE_HASH_HSIEH: "ON"
24 ENABLE_DTRACE: "OFF"
25 VERBOSE: "ON"
26 OS_VND: Linux #
27 OS_VER: ubuntu-20.04 #
28 CC_VND: gnu #
29 CC_VER: cur #
30
31 jobs:
32
33 # new memcached
34 dbg-new:
35 name: dbg-new (ubuntu-20.04, gnu, cur)
36 runs-on: ubuntu-20.04 #
37 env:
38 INSTALL_MEMCACHED:
39 MEMCACHED_PREFIX: /tmp
40 ENABLE_SASL: "ON"
41 CFLAGS: "-O0 --coverage"
42 CXXFLAGS: "-O0 --coverage"
43 steps:
44 - uses: actions/checkout@v2
45 - uses: actions/checkout@v2
46 with:
47 repository: memcached/memcached
48 path: memcached
49 ref: 1.6.7
50 - name: Prepare environment (for cur gnu on ubuntu-20.04)
51 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
52 run: |
53 echo CC="gcc-9" >> ${GITHUB_ENV}
54 echo CXX="g++-9" >> ${GITHUB_ENV}
55 - name: Install dependencies (Linux)
56 if: runner.os == 'Linux'
57 run: |
58 sudo apt-get install \
59 libevent-dev \
60 libsasl2-dev \
61 ${INSTALL_MEMCACHED} \
62 ${INSTALL_CC} ${INSTALL_CXX}
63 sudo systemctl stop memcached || true
64 - name: Install dependencies (Mac)
65 if: runner.os == 'macOS'
66 run: |
67 brew install bison flex ${INSTALL_MEMCACHED}
68 brew services stop memcached || true
69 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
70 - name: Build memcached
71 run: |
72 if test -d memcached
73 then
74 cd memcached
75 ./autogen.sh
76 ./configure CFLAGS="-O2 -pipe" \
77 --prefix=${MEMCACHED_PREFIX} \
78 --enable-sasl \
79 --enable-sasl-pwdb \
80 --disable-coverage \
81 --disable-dependency-tracking \
82 --disable-docs \
83 --disable-extstore \
84 --disable-option-checking \
85 ;
86 make -j2
87 make install
88 cd ..
89 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
90 fi
91 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
92 run: cmake -S . -B build
93 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
94 run: make -C build -j2 all
95 - name: Test
96 run: make -C build -j2 test
97 - name: Install
98 run: make -C build -j2 install DESTDIR=/tmp
99 - name: Failed tests log
100 if: ${{ failure() }}
101 run: cat build/Testing/Temporary/LastTest.log || true
102 - name: Notify Gitter (success)
103 if: ${{ success() }}
104 run: |
105 REF=$(basename ${GITHUB_REF})
106 curl -sS "${{ secrets.GITTER }}" \
107 --data-urlencode "level=info" \
108 --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}})"
109 - name: Notify Gitter (failure)
110 if: ${{ failure() }}
111 run: |
112 REF=$(basename ${GITHUB_REF})
113 curl -sS "${{ secrets.GITTER }}" \
114 --data-urlencode "level=error" \
115 --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}})"
116 - uses: codecov/codecov-action@v1.0.13
117
118 # sanitizer build
119 dbg-san:
120 name: dbg-san (ubuntu-20.04, gnu, cur)
121 runs-on: ubuntu-20.04 #
122 env:
123 ENABLE_SANITIZERS: "address;undefined"
124 steps:
125 - uses: actions/checkout@v2
126 - name: Prepare environment (for cur gnu on ubuntu-20.04)
127 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
128 run: |
129 echo CC="gcc-9" >> ${GITHUB_ENV}
130 echo CXX="g++-9" >> ${GITHUB_ENV}
131 - name: Install dependencies (Linux)
132 if: runner.os == 'Linux'
133 run: |
134 sudo apt-get install \
135 libevent-dev \
136 libsasl2-dev \
137 ${INSTALL_MEMCACHED} \
138 ${INSTALL_CC} ${INSTALL_CXX}
139 sudo systemctl stop memcached || true
140 - name: Install dependencies (Mac)
141 if: runner.os == 'macOS'
142 run: |
143 brew install bison flex ${INSTALL_MEMCACHED}
144 brew services stop memcached || true
145 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
146 - name: Build memcached
147 run: |
148 if test -d memcached
149 then
150 cd memcached
151 ./autogen.sh
152 ./configure CFLAGS="-O2 -pipe" \
153 --prefix=${MEMCACHED_PREFIX} \
154 --enable-sasl \
155 --enable-sasl-pwdb \
156 --disable-coverage \
157 --disable-dependency-tracking \
158 --disable-docs \
159 --disable-extstore \
160 --disable-option-checking \
161 ;
162 make -j2
163 make install
164 cd ..
165 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
166 fi
167 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
168 run: cmake -S . -B build
169 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
170 run: make -C build -j2 all
171 - name: Test
172 run: make -C build -j2 test
173 - name: Install
174 run: make -C build -j2 install DESTDIR=/tmp
175 - name: Failed tests log
176 if: ${{ failure() }}
177 run: cat build/Testing/Temporary/LastTest.log || true
178 - name: Notify Gitter (success)
179 if: ${{ success() }}
180 run: |
181 REF=$(basename ${GITHUB_REF})
182 curl -sS "${{ secrets.GITTER }}" \
183 --data-urlencode "level=info" \
184 --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}})"
185 - name: Notify Gitter (failure)
186 if: ${{ failure() }}
187 run: |
188 REF=$(basename ${GITHUB_REF})
189 curl -sS "${{ secrets.GITTER }}" \
190 --data-urlencode "level=error" \
191 --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}})"
192
193 # mac build
194 dbg-mac:
195 name: dbg-mac (macos-10.15, clang, apple)
196 runs-on: macos-10.15 #
197 env:
198 CFLAGS: -O0 --coverage
199 CXXFLAGS: -O0 --coverage
200 OS_VND: macOS
201 OS_VER: macos-10.15 #
202 CC_VND: clang #
203 CC_VER: apple #
204 continue-on-error: true
205 steps:
206 - uses: actions/checkout@v2
207 - name: Install dependencies (Linux)
208 if: runner.os == 'Linux'
209 run: |
210 sudo apt-get install \
211 libevent-dev \
212 libsasl2-dev \
213 ${INSTALL_MEMCACHED} \
214 ${INSTALL_CC} ${INSTALL_CXX}
215 sudo systemctl stop memcached || true
216 - name: Install dependencies (Mac)
217 if: runner.os == 'macOS'
218 run: |
219 brew install bison flex ${INSTALL_MEMCACHED}
220 brew services stop memcached || true
221 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
222 - name: Build memcached
223 run: |
224 if test -d memcached
225 then
226 cd memcached
227 ./autogen.sh
228 ./configure CFLAGS="-O2 -pipe" \
229 --prefix=${MEMCACHED_PREFIX} \
230 --enable-sasl \
231 --enable-sasl-pwdb \
232 --disable-coverage \
233 --disable-dependency-tracking \
234 --disable-docs \
235 --disable-extstore \
236 --disable-option-checking \
237 ;
238 make -j2
239 make install
240 cd ..
241 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
242 fi
243 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
244 run: cmake -S . -B build
245 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
246 run: make -C build -j2 all
247 - name: Test
248 run: make -C build -j2 test
249 - name: Install
250 run: make -C build -j2 install DESTDIR=/tmp
251 - name: Failed tests log
252 if: ${{ failure() }}
253 run: cat build/Testing/Temporary/LastTest.log || true
254 - name: Notify Gitter (success)
255 if: ${{ success() }}
256 run: |
257 REF=$(basename ${GITHUB_REF})
258 curl -sS "${{ secrets.GITTER }}" \
259 --data-urlencode "level=info" \
260 --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}})"
261 - name: Notify Gitter (failure)
262 if: ${{ failure() }}
263 run: |
264 REF=$(basename ${GITHUB_REF})
265 curl -sS "${{ secrets.GITTER }}" \
266 --data-urlencode "level=error" \
267 --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}})"
268 - uses: codecov/codecov-action@v1.0.13
269
270 # release builds
271 release:
272 strategy:
273 fail-fast: false
274 matrix:
275 os_ver: [ubuntu-20.04, ubuntu-18.04]
276 cc_vnd: [gnu, clang]
277 cc_ver: [new, cur, old]
278 runs-on: ${{ matrix.os_ver }}
279 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
280 env:
281 CMAKE_BUILD_TYPE: Release
282 OS_VND: Linux
283 OS_VER: ${{ matrix.os_ver }}
284 CC_VND: ${{ matrix.cc_vnd }}
285 CC_VER: ${{ matrix.cc_ver }}
286 steps:
287 - uses: actions/checkout@v2
288 - name: Prepare environment (for new gnu on ubuntu-20.04)
289 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
290 run: |
291 echo CC="gcc-10" >> ${GITHUB_ENV}
292 echo CXX="g++-10" >> ${GITHUB_ENV}
293 echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
294 echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
295 - name: Prepare environment (for cur gnu on ubuntu-20.04)
296 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
297 run: |
298 echo CC="gcc-9" >> ${GITHUB_ENV}
299 echo CXX="g++-9" >> ${GITHUB_ENV}
300 - name: Prepare environment (for old gnu on ubuntu-20.04)
301 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
302 run: |
303 echo CC="gcc-8" >> ${GITHUB_ENV}
304 echo CXX="g++-8" >> ${GITHUB_ENV}
305 - name: Prepare environment (for new clang on ubuntu-20.04)
306 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
307 run: |
308 echo CC="clang-10" >> ${GITHUB_ENV}
309 echo CXX="clang++-10" >> ${GITHUB_ENV}
310 - name: Prepare environment (for cur clang on ubuntu-20.04)
311 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
312 run: |
313 echo CC="clang-9" >> ${GITHUB_ENV}
314 echo CXX="clang++-9" >> ${GITHUB_ENV}
315 - name: Prepare environment (for old clang on ubuntu-20.04)
316 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
317 run: |
318 echo CC="clang-8" >> ${GITHUB_ENV}
319 echo CXX="clang++-8" >> ${GITHUB_ENV}
320 - name: Prepare environment (for new gnu on ubuntu-18.04)
321 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
322 run: |
323 echo CC="gcc-9" >> ${GITHUB_ENV}
324 echo CXX="g++-9" >> ${GITHUB_ENV}
325 - name: Prepare environment (for cur gnu on ubuntu-18.04)
326 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
327 run: |
328 echo CC="gcc-8" >> ${GITHUB_ENV}
329 echo CXX="g++-8" >> ${GITHUB_ENV}
330 - name: Prepare environment (for old gnu on ubuntu-18.04)
331 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
332 run: |
333 echo CC="gcc-7" >> ${GITHUB_ENV}
334 echo CXX="g++-7" >> ${GITHUB_ENV}
335 - name: Prepare environment (for new clang on ubuntu-18.04)
336 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
337 run: |
338 echo CC="clang-9" >> ${GITHUB_ENV}
339 echo CXX="clang++-9" >> ${GITHUB_ENV}
340 - name: Prepare environment (for cur clang on ubuntu-18.04)
341 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
342 run: |
343 echo CC="clang-8" >> ${GITHUB_ENV}
344 echo CXX="clang++-8" >> ${GITHUB_ENV}
345 - name: Prepare environment (for old clang on ubuntu-18.04)
346 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
347 run: |
348 echo CC="clang-6.0" >> ${GITHUB_ENV}
349 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
350 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
351 - name: Install dependencies (Linux)
352 if: runner.os == 'Linux'
353 run: |
354 sudo apt-get install \
355 libevent-dev \
356 libsasl2-dev \
357 ${INSTALL_MEMCACHED} \
358 ${INSTALL_CC} ${INSTALL_CXX}
359 sudo systemctl stop memcached || true
360 - name: Install dependencies (Mac)
361 if: runner.os == 'macOS'
362 run: |
363 brew install bison flex ${INSTALL_MEMCACHED}
364 brew services stop memcached || true
365 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
366 - name: Build memcached
367 run: |
368 if test -d memcached
369 then
370 cd memcached
371 ./autogen.sh
372 ./configure CFLAGS="-O2 -pipe" \
373 --prefix=${MEMCACHED_PREFIX} \
374 --enable-sasl \
375 --enable-sasl-pwdb \
376 --disable-coverage \
377 --disable-dependency-tracking \
378 --disable-docs \
379 --disable-extstore \
380 --disable-option-checking \
381 ;
382 make -j2
383 make install
384 cd ..
385 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
386 fi
387 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
388 run: cmake -S . -B build
389 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
390 run: make -C build -j2 all
391 - name: Test
392 run: make -C build -j2 test
393 - name: Install
394 run: make -C build -j2 install DESTDIR=/tmp
395 - name: Failed tests log
396 if: ${{ failure() }}
397 run: cat build/Testing/Temporary/LastTest.log || true
398 - name: Notify Gitter (success)
399 if: ${{ success() }}
400 run: |
401 REF=$(basename ${GITHUB_REF})
402 curl -sS "${{ secrets.GITTER }}" \
403 --data-urlencode "level=info" \
404 --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}})"
405 - name: Notify Gitter (failure)
406 if: ${{ failure() }}
407 run: |
408 REF=$(basename ${GITHUB_REF})
409 curl -sS "${{ secrets.GITTER }}" \
410 --data-urlencode "level=error" \
411 --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}})"