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