contexts here, contexts there...
[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
52 if: runner.os == 'Linux'
53 run: sudo apt-get install libevent-dev libsasl2-dev ${INSTALL_MEMCACHED} ${INSTALL_CC} ${INSTALL_CXX}
54 - name: Build memcached
55 run: |
56 cd memcached
57 ./autogen.sh
58 ./configure CFLAGS="-O2 -pipe" \
59 --prefix=${MEMCACHED_PREFIX} \
60 --enable-sasl \
61 --enable-sasl-pwdb \
62 --disable-docs \
63 --disable-coverage \
64 --disable-dependency-tracking
65 make -j2
66 make install
67 cd ..
68 - name: Generate build tree (${{ env.CMAKE_CONFIG_TYPE }})
69 run: cmake -S . -B build
70 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
71 run: make -C build -j2 all
72 - name: Test
73 run: make -C build -j2 test
74 - name: Install
75 run: make -C build -j2 install DESTDIR=.
76 - name: Failed tests log
77 if: ${{ failure() }}
78 run: cat build/Testing/Temporary/LastTest.log || true
79
80 # sanitizer build
81 ci-san:
82 name: ci-dbg (ubuntu-20.04, gnu, cur, sanitizers)
83 runs-on: ubuntu-20.04 #
84 env:
85 ENABLE_SANITIZERS: "address;undefined"
86 steps:
87 - uses: actions/checkout@v2
88 - name: Prepare environment (for cur gnu on ubuntu-20.04)
89 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
90 run: |
91 echo CC=gcc-9 >> ${GITHUB_ENV}
92 echo CXX=g++-9 >> ${GITHUB_ENV}
93 - name: Install dependencies
94 if: runner.os == 'Linux'
95 run: sudo apt-get install libevent-dev libsasl2-dev ${INSTALL_MEMCACHED} ${INSTALL_CC} ${INSTALL_CXX}
96 - name: Generate build tree (${{ env.CMAKE_CONFIG_TYPE }})
97 run: cmake -S . -B build
98 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
99 run: make -C build -j2 all
100 - name: Test
101 run: make -C build -j2 test
102 - name: Install
103 run: make -C build -j2 install DESTDIR=.
104 - name: Failed tests log
105 if: ${{ failure() }}
106 run: cat build/Testing/Temporary/LastTest.log || true
107
108 # coverage build
109 ci-cov:
110 name: ci-dbg (ubuntu-20.04, gnu, cur, coverage)
111 runs-on: ubuntu-20.04 #
112 env:
113 CFLAGS: -O0 --coverage
114 CXXFLAGS: -O0 --coverage
115 steps:
116 - uses: actions/checkout@v2
117 - name: Prepare environment (for cur gnu on ubuntu-20.04)
118 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
119 run: |
120 echo CC=gcc-9 >> ${GITHUB_ENV}
121 echo CXX=g++-9 >> ${GITHUB_ENV}
122 - name: Install dependencies
123 if: runner.os == 'Linux'
124 run: sudo apt-get install libevent-dev libsasl2-dev ${INSTALL_MEMCACHED} ${INSTALL_CC} ${INSTALL_CXX}
125 - name: Generate build tree (${{ env.CMAKE_CONFIG_TYPE }})
126 run: cmake -S . -B build
127 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
128 run: make -C build -j2 all
129 - name: Test
130 run: make -C build -j2 test
131 - name: Install
132 run: make -C build -j2 install DESTDIR=.
133 - name: Failed tests log
134 if: ${{ failure() }}
135 run: cat build/Testing/Temporary/LastTest.log || true
136 - uses: codecov/codecov-action@v1.0.13
137
138 # release builds
139 ci-rel:
140 strategy:
141 fail-fast: false
142 matrix:
143 os_ver: [ubuntu-20.04, ubuntu-18.04]
144 cc_vnd: [gnu, clang]
145 cc_ver: [new, cur, old]
146 runs-on: ${{ matrix.os_ver }}
147 continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
148 env:
149 CMAKE_BUILD_TYPE: Release
150 OS_VND: Linux
151 OS_VER: ${{ matrix.os_ver }}
152 CC_VND: ${{ matrix.cc_vnd }}
153 CC_VER: ${{ matrix.cc_ver }}
154 steps:
155 - uses: actions/checkout@v2
156 - name: Prepare environment (for new gnu on ubuntu-20.04)
157 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
158 run: |
159 echo CC=gcc-10 >> ${GITHUB_ENV}
160 echo CXX=g++-10 >> ${GITHUB_ENV}
161 echo INSTALL_CC='gcc-10' >> ${GITHUB_ENV}
162 echo INSTALL_CXX='g++-10' >> ${GITHUB_ENV}
163 - name: Prepare environment (for cur gnu on ubuntu-20.04)
164 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
165 run: |
166 echo CC=gcc-9 >> ${GITHUB_ENV}
167 echo CXX=g++-9 >> ${GITHUB_ENV}
168 - name: Prepare environment (for old gnu on ubuntu-20.04)
169 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
170 run: |
171 echo CC=gcc-8 >> ${GITHUB_ENV}
172 echo CXX=g++-8 >> ${GITHUB_ENV}
173 - name: Prepare environment (for new clang on ubuntu-20.04)
174 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
175 run: |
176 echo CC=clang-10 >> ${GITHUB_ENV}
177 echo CXX=clang++-10 >> ${GITHUB_ENV}
178 - name: Prepare environment (for cur clang on ubuntu-20.04)
179 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
180 run: |
181 echo CC=clang-9 >> ${GITHUB_ENV}
182 echo CXX=clang++-9 >> ${GITHUB_ENV}
183 - name: Prepare environment (for old clang on ubuntu-20.04)
184 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
185 run: |
186 echo CC=clang-8 >> ${GITHUB_ENV}
187 echo CXX=clang++-8 >> ${GITHUB_ENV}
188 - name: Prepare environment (for new gnu on ubuntu-18.04)
189 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
190 run: |
191 echo CC=gcc-9 >> ${GITHUB_ENV}
192 echo CXX=g++-9 >> ${GITHUB_ENV}
193 - name: Prepare environment (for cur gnu on ubuntu-18.04)
194 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
195 run: |
196 echo CC=gcc-8 >> ${GITHUB_ENV}
197 echo CXX=g++-8 >> ${GITHUB_ENV}
198 - name: Prepare environment (for old gnu on ubuntu-18.04)
199 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
200 run: |
201 echo CC=gcc-7 >> ${GITHUB_ENV}
202 echo CXX=g++-7 >> ${GITHUB_ENV}
203 - name: Prepare environment (for new clang on ubuntu-18.04)
204 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
205 run: |
206 echo CC=clang-9 >> ${GITHUB_ENV}
207 echo CXX=clang++-9 >> ${GITHUB_ENV}
208 - name: Prepare environment (for cur clang on ubuntu-18.04)
209 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
210 run: |
211 echo CC=clang-8 >> ${GITHUB_ENV}
212 echo CXX=clang++-8 >> ${GITHUB_ENV}
213 - name: Prepare environment (for old clang on ubuntu-18.04)
214 if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
215 run: |
216 echo CC=clang-7 >> ${GITHUB_ENV}
217 echo CXX=clang++-7 >> ${GITHUB_ENV}
218 echo INSTALL_CC='clang-7' >> ${GITHUB_ENV}
219 echo INSTALL_CXX='clang-7' >> ${GITHUB_ENV}
220 - name: Install dependencies
221 if: runner.os == 'Linux'
222 run: sudo apt-get install libevent-dev libsasl2-dev ${INSTALL_MEMCACHED} ${INSTALL_CC} ${INSTALL_CXX}
223 - name: Generate build tree (${{ env.CMAKE_CONFIG_TYPE }})
224 run: cmake -S . -B build
225 - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
226 run: make -C build -j2 all
227 - name: Test
228 run: make -C build -j2 test
229 - name: Install
230 run: make -C build -j2 install DESTDIR=.
231 - name: Failed tests log
232 if: ${{ failure() }}
233 run: cat build/Testing/Temporary/LastTest.log || true