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