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