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