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