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