???
[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: "ON"
20 ENABLE_HASH_HSIEH: "ON"
21 ENABLE_DTRACE: "ON"
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 matrix:
33 os: [ubuntu-20.04, ubuntu-18.04]
34 compiler_vendor: [gnu, clang]
35 compiler_version: [new, cur, old]
36 runs-on: ${{ matrix.os }}
37 if: ${{ matrix.os }} != 'ubuntu-18.04' || ${{ matrix.compiler_vendor }} != 'clang' || ${{ matrix.compiler_version }} != 'old'
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: Install dependencies
104 if: runner.os == 'Linux'
105 run: sudo apt-get install libevent-dev libsasl2-dev ${INSTALL_MEMCACHED} ${INSTALL_CC} ${INSTALL_CXX}
106 - name: Generate build tree (${CMAKE_CONFIG_TYPE})
107 run: cmake -S . -B build
108 - name: Build all with ${CXX} ${CXXFLAGS}
109 run: make -C build -j2 all
110 - name: Test
111 run: make -C build -j2 test
112 - name: Install
113 run: make -C build -j2 install DESTDIR=.
114 - name: Failed tests log
115 if: ${{ failure() }}
116 run: cat Testing/Temporary/LastTest.log
117
118 # sanitizer build
119 ci-san:
120 runs-on: ubuntu-20.04 #
121 env:
122 ENABLE_SANITIZERS: "address;undefined"
123 steps:
124 - uses: actions/checkout@v2
125 - name: Prepare environment (for cur gnu on ubuntu-20.04)
126 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
127 run: |
128 echo CC=gcc-9 >> ${GITHUB_ENV}
129 echo CXX=g++-9 >> ${GITHUB_ENV}
130 - name: Install dependencies
131 if: runner.os == 'Linux'
132 run: sudo apt-get install libevent-dev libsasl2-dev ${INSTALL_MEMCACHED} ${INSTALL_CC} ${INSTALL_CXX}
133 - name: Generate build tree (${CMAKE_CONFIG_TYPE})
134 run: cmake -S . -B build
135 - name: Build all with ${CXX} ${CXXFLAGS}
136 run: make -C build -j2 all
137 - name: Test
138 run: make -C build -j2 test
139 - name: Install
140 run: make -C build -j2 install DESTDIR=.
141 - name: Failed tests log
142 if: ${{ failure() }}
143 run: cat Testing/Temporary/LastTest.log
144
145 # coverage build
146 ci-cov:
147 runs-on: ubuntu-20.04 #
148 env:
149 CFLAGS: --coverage
150 CXXFLAGS: --coverage
151 steps:
152 - uses: actions/checkout@v2
153 - name: Prepare environment (for cur gnu on ubuntu-20.04)
154 if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
155 run: |
156 echo CC=gcc-9 >> ${GITHUB_ENV}
157 echo CXX=g++-9 >> ${GITHUB_ENV}
158 - name: Install dependencies
159 if: runner.os == 'Linux'
160 run: sudo apt-get install libevent-dev libsasl2-dev ${INSTALL_MEMCACHED} ${INSTALL_CC} ${INSTALL_CXX}
161 - name: Generate build tree (${CMAKE_CONFIG_TYPE})
162 run: cmake -S . -B build
163 - name: Build all with ${CXX} ${CXXFLAGS}
164 run: make -C build -j2 all
165 - name: Test
166 run: make -C build -j2 test
167 - name: Install
168 run: make -C build -j2 install DESTDIR=.
169 - name: Failed tests log
170 if: ${{ failure() }}
171 run: cat Testing/Temporary/LastTest.log
172 - uses: codecov/codecov-action@v1.0.13
173
174 # memcached new
175 ci-new:
176 runs-on: ubuntu-20.04 #
177 env:
178 INSTALL_MEMCACHED:
179 MEMCACHED_PREFIX: /tmp
180 MEMCACHED_BINARY: /tmp/bin/memcached
181 enable_sasl: yes
182 enable_sasl_pwdb: yes
183 enable_docs: no
184 enable_coverage: no
185 enable_dependency_tracking: no
186 steps:
187 - uses: actions/checkout@v2
188 - uses: actions/checkout@v2
189 with:
190 repository: memcached/memcached
191 path: memcached
192 ref: 1.6.7
193 - name: Build memcached
194 run: |
195 cd memcached
196 ./autogen.sh
197 ./configure CFLAGS="-O2 -pipe" --prefix=${MEMCACHED_PREFIX}
198 make -j2
199 make install
200 cd ..
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: Generate build tree (${CMAKE_CONFIG_TYPE})
210 run: cmake -S . -B build
211 - name: Build all with ${CXX} ${CXXFLAGS}
212 run: make -C build -j2 all
213 - name: Test
214 run: make -C build -j2 test
215 - name: Install
216 run: make -C build -j2 install DESTDIR=.
217 - name: Failed tests log
218 if: ${{ failure() }}
219 run: cat Testing/Temporary/LastTest.log
220