merge cov into new 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-ignore:
6 - "docs/**"
7 - ".travis.yml"
8 - ".cirrus.yml"
9 - ".github/workflows/docs*"
10 branches-ignore:
11 - gh-pages
12 pull_request:
13 branches:
14 - master
15 - v1.x
16 env:
17 # defaults
18 INSTALL_MEMCACHED: memcached
19 CMAKE_BUILD_TYPE: Debug
20 BUILD_TESTING: "ON"
21 ENABLE_SASL: "OFF"
22 ENABLE_HASH_HSIEH: "ON"
23 ENABLE_DTRACE: "OFF"
24 VERBOSE: "ON"
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 INSTALL_MEMCACHED:
38 MEMCACHED_PREFIX: /tmp
39 ENABLE_SASL: "ON"
40 CFLAGS: "-O0 --coverage"
41 CXXFLAGS: "-O0 --coverage"
42 steps:
43 - uses: actions/checkout@v2
44 - uses: actions/checkout@v2
45 with:
46 repository: memcached/memcached
47 path: memcached
48 ref: 1.6.7
49 - name: Prepare environment (for cur gnu on ubuntu-20.04)
50 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
51 run: |
52 echo CC="gcc-9" >> ${GITHUB_ENV}
53 echo CXX="g++-9" >> ${GITHUB_ENV}
54 - name: Install dependencies (Linux)
55 if: runner.os == 'Linux'
56 run: |
57 sudo apt-get install \
58 libevent-dev \
59 libsasl2-dev \
60 ${INSTALL_MEMCACHED} \
61 ${INSTALL_CC} ${INSTALL_CXX}
62 sudo systemctl stop memcached || true
63 - name: Install dependencies (Mac)
64 if: runner.os == 'macOS'
65 run: |
66 brew install bison flex ${INSTALL_MEMCACHED}
67 brew services stop memcached || true
68 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
69 - name: Build memcached
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 -S . -B build
92 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
93 run: make -C build -j2 all
94 - name: Test
95 run: make -C build -j2 test
96 - name: Install
97 run: make -C build -j2 install DESTDIR=/tmp
98 - name: Failed tests log
99 if: ${{ failure() }}
100 run: cat build/Testing/Temporary/LastTest.log || true
101 - uses: codecov/codecov-action@v1.0.13
102
103 # sanitizer build
104 dbg-san:
105 name: dbg-san (ubuntu-20.04, gnu, cur)
106 runs-on: ubuntu-20.04 #
107 env:
108 ENABLE_SANITIZERS: "address;undefined"
109 steps:
110 - uses: actions/checkout@v2
111 - name: Prepare environment (for cur gnu on ubuntu-20.04)
112 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
113 run: |
114 echo CC="gcc-9" >> ${GITHUB_ENV}
115 echo CXX="g++-9" >> ${GITHUB_ENV}
116 - name: Install dependencies (Linux)
117 if: runner.os == 'Linux'
118 run: |
119 sudo apt-get install \
120 libevent-dev \
121 libsasl2-dev \
122 ${INSTALL_MEMCACHED} \
123 ${INSTALL_CC} ${INSTALL_CXX}
124 sudo systemctl stop memcached || true
125 - name: Install dependencies (Mac)
126 if: runner.os == 'macOS'
127 run: |
128 brew install bison flex ${INSTALL_MEMCACHED}
129 brew services stop memcached || true
130 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
131 - name: Build memcached
132 run: |
133 if test -d memcached
134 then
135 cd memcached
136 ./autogen.sh
137 ./configure CFLAGS="-O2 -pipe" \
138 --prefix=${MEMCACHED_PREFIX} \
139 --enable-sasl \
140 --enable-sasl-pwdb \
141 --disable-coverage \
142 --disable-dependency-tracking \
143 --disable-docs \
144 --disable-extstore \
145 --disable-option-checking \
146 ;
147 make -j2
148 make install
149 cd ..
150 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
151 fi
152 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
153 run: cmake -S . -B build
154 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
155 run: make -C build -j2 all
156 - name: Test
157 run: make -C build -j2 test
158 - name: Install
159 run: make -C build -j2 install DESTDIR=/tmp
160 - name: Failed tests log
161 if: ${{ failure() }}
162 run: cat build/Testing/Temporary/LastTest.log || true
163
164 # mac build
165 dbg-mac:
166 name: dbg-mac (macos-10.15, clang, apple)
167 runs-on: macos-10.15 #
168 env:
169 CFLAGS: -O0 --coverage
170 CXXFLAGS: -O0 --coverage
171 continue-on-error: true
172 steps:
173 - uses: actions/checkout@v2
174 - name: Install dependencies (Linux)
175 if: runner.os == 'Linux'
176 run: |
177 sudo apt-get install \
178 libevent-dev \
179 libsasl2-dev \
180 ${INSTALL_MEMCACHED} \
181 ${INSTALL_CC} ${INSTALL_CXX}
182 sudo systemctl stop memcached || true
183 - name: Install dependencies (Mac)
184 if: runner.os == 'macOS'
185 run: |
186 brew install bison flex ${INSTALL_MEMCACHED}
187 brew services stop memcached || true
188 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
189 - name: Build memcached
190 run: |
191 if test -d memcached
192 then
193 cd memcached
194 ./autogen.sh
195 ./configure CFLAGS="-O2 -pipe" \
196 --prefix=${MEMCACHED_PREFIX} \
197 --enable-sasl \
198 --enable-sasl-pwdb \
199 --disable-coverage \
200 --disable-dependency-tracking \
201 --disable-docs \
202 --disable-extstore \
203 --disable-option-checking \
204 ;
205 make -j2
206 make install
207 cd ..
208 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
209 fi
210 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
211 run: cmake -S . -B build
212 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
213 run: make -C build -j2 all
214 - name: Test
215 run: make -C build -j2 test
216 - name: Install
217 run: make -C build -j2 install DESTDIR=/tmp
218 - name: Failed tests log
219 if: ${{ failure() }}
220 run: cat build/Testing/Temporary/LastTest.log || true
221 - uses: codecov/codecov-action@v1.0.13
222
223 # release builds
224 release:
225 strategy:
226 fail-fast: false
227 matrix:
228 os_ver: [ubuntu-20.04, ubuntu-18.04]
229 cc_vnd: [gnu, clang]
230 cc_ver: [new, cur, old]
231 runs-on: ${{ matrix.os_ver }}
232 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
233 env:
234 CMAKE_BUILD_TYPE: Release
235 OS_VND: Linux
236 OS_VER: ${{ matrix.os_ver }}
237 CC_VND: ${{ matrix.cc_vnd }}
238 CC_VER: ${{ matrix.cc_ver }}
239 steps:
240 - uses: actions/checkout@v2
241 - name: Prepare environment (for new gnu on ubuntu-20.04)
242 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
243 run: |
244 echo CC="gcc-10" >> ${GITHUB_ENV}
245 echo CXX="g++-10" >> ${GITHUB_ENV}
246 echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
247 echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
248 - name: Prepare environment (for cur gnu on ubuntu-20.04)
249 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
250 run: |
251 echo CC="gcc-9" >> ${GITHUB_ENV}
252 echo CXX="g++-9" >> ${GITHUB_ENV}
253 - name: Prepare environment (for old gnu on ubuntu-20.04)
254 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
255 run: |
256 echo CC="gcc-8" >> ${GITHUB_ENV}
257 echo CXX="g++-8" >> ${GITHUB_ENV}
258 - name: Prepare environment (for new clang on ubuntu-20.04)
259 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
260 run: |
261 echo CC="clang-10" >> ${GITHUB_ENV}
262 echo CXX="clang++-10" >> ${GITHUB_ENV}
263 - name: Prepare environment (for cur clang on ubuntu-20.04)
264 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
265 run: |
266 echo CC="clang-9" >> ${GITHUB_ENV}
267 echo CXX="clang++-9" >> ${GITHUB_ENV}
268 - name: Prepare environment (for old clang on ubuntu-20.04)
269 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
270 run: |
271 echo CC="clang-8" >> ${GITHUB_ENV}
272 echo CXX="clang++-8" >> ${GITHUB_ENV}
273 - name: Prepare environment (for new gnu on ubuntu-18.04)
274 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
275 run: |
276 echo CC="gcc-9" >> ${GITHUB_ENV}
277 echo CXX="g++-9" >> ${GITHUB_ENV}
278 - name: Prepare environment (for cur gnu on ubuntu-18.04)
279 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
280 run: |
281 echo CC="gcc-8" >> ${GITHUB_ENV}
282 echo CXX="g++-8" >> ${GITHUB_ENV}
283 - name: Prepare environment (for old gnu on ubuntu-18.04)
284 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
285 run: |
286 echo CC="gcc-7" >> ${GITHUB_ENV}
287 echo CXX="g++-7" >> ${GITHUB_ENV}
288 - name: Prepare environment (for new clang on ubuntu-18.04)
289 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
290 run: |
291 echo CC="clang-9" >> ${GITHUB_ENV}
292 echo CXX="clang++-9" >> ${GITHUB_ENV}
293 - name: Prepare environment (for cur clang on ubuntu-18.04)
294 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
295 run: |
296 echo CC="clang-8" >> ${GITHUB_ENV}
297 echo CXX="clang++-8" >> ${GITHUB_ENV}
298 - name: Prepare environment (for old clang on ubuntu-18.04)
299 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
300 run: |
301 echo CC="clang-6.0" >> ${GITHUB_ENV}
302 echo CXX="clang++-6.0" >> ${GITHUB_ENV}
303 echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
304 - name: Install dependencies (Linux)
305 if: runner.os == 'Linux'
306 run: |
307 sudo apt-get install \
308 libevent-dev \
309 libsasl2-dev \
310 ${INSTALL_MEMCACHED} \
311 ${INSTALL_CC} ${INSTALL_CXX}
312 sudo systemctl stop memcached || true
313 - name: Install dependencies (Mac)
314 if: runner.os == 'macOS'
315 run: |
316 brew install bison flex ${INSTALL_MEMCACHED}
317 brew services stop memcached || true
318 echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
319 - name: Build memcached
320 run: |
321 if test -d memcached
322 then
323 cd memcached
324 ./autogen.sh
325 ./configure CFLAGS="-O2 -pipe" \
326 --prefix=${MEMCACHED_PREFIX} \
327 --enable-sasl \
328 --enable-sasl-pwdb \
329 --disable-coverage \
330 --disable-dependency-tracking \
331 --disable-docs \
332 --disable-extstore \
333 --disable-option-checking \
334 ;
335 make -j2
336 make install
337 cd ..
338 echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
339 fi
340 - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
341 run: cmake -S . -B build
342 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
343 run: make -C build -j2 all
344 - name: Test
345 run: make -C build -j2 test
346 - name: Install
347 run: make -C build -j2 install DESTDIR=/tmp
348 - name: Failed tests log
349 if: ${{ failure() }}
350 run: cat build/Testing/Temporary/LastTest.log || true