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