]> git.ipfire.org Git - thirdparty/bird.git/blob - .gitlab-ci.yml
Dropping automatic tests for Debian 7 Wheezy.
[thirdparty/bird.git] / .gitlab-ci.yml
1 variables:
2 DEBIAN_FRONTEND: noninteractive
3 LC_ALL: C
4 GIT_STRATEGY: fetch
5 DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/"
6 IMG_BASE: registry.labs.nic.cz/labs/bird
7 TOOLS_DIR: /var/lib/gitlab-runner/bird-tools
8
9 stages:
10 - image
11 - build
12 - test
13
14 .docker: &docker_build
15 stage: image
16 allow_failure: true
17 script:
18 - $DOCKER_CMD login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.labs.nic.cz
19 # Make sure we refresh the base image if it updates (eg. security updates, etc)
20 # If we do just the build, cache is always reused and the freshness of the
21 # base image is never checked. However, pull always asks and updates the
22 # image only if it changed ‒ therefore, the cache is used unless there's a
23 # change.
24 - $DOCKER_CMD pull `sed -ne 's/^FROM //p' "misc/docker/$IMG_NAME/Dockerfile"`
25 - $DOCKER_CMD build -t "bird:$IMG_NAME" "misc/docker/$IMG_NAME"
26 - $DOCKER_CMD tag "bird:$IMG_NAME" "$IMG_BASE:$IMG_NAME"
27 - $DOCKER_CMD push "$IMG_BASE:$IMG_NAME"
28 after_script:
29 - rm -f "$HOME/.docker/$CI_JOB_ID/" # cleanup the credentials
30 tags:
31 # That's Docker in Docker
32 - dind
33
34 docker_debian-8-amd64:
35 variables:
36 IMG_NAME: "debian-8-amd64"
37 <<: *docker_build
38
39 docker_debian-8-i386:
40 variables:
41 IMG_NAME: "debian-8-i386"
42 <<: *docker_build
43
44 docker_debian-9-amd64:
45 variables:
46 IMG_NAME: "debian-9-amd64"
47 <<: *docker_build
48
49 docker_debian-9-i386:
50 variables:
51 IMG_NAME: "debian-9-i386"
52 <<: *docker_build
53
54 docker_debian-10-amd64:
55 variables:
56 IMG_NAME: "debian-10-amd64"
57 <<: *docker_build
58
59 docker_debian-10-i386:
60 variables:
61 IMG_NAME: "debian-10-i386"
62 <<: *docker_build
63
64 docker_debian-testing-amd64:
65 variables:
66 IMG_NAME: "debian-testing-amd64"
67 <<: *docker_build
68
69 docker_debian-testing-i386:
70 variables:
71 IMG_NAME: "debian-testing-i386"
72 <<: *docker_build
73
74 docker_fedora-25-amd64:
75 variables:
76 IMG_NAME: "fedora-25-amd64"
77 <<: *docker_build
78
79 docker_fedora-26-amd64:
80 variables:
81 IMG_NAME: "fedora-26-amd64"
82 <<: *docker_build
83
84 docker_fedora-27-amd64:
85 variables:
86 IMG_NAME: "fedora-27-amd64"
87 <<: *docker_build
88
89 docker_fedora-28-amd64:
90 variables:
91 IMG_NAME: "fedora-28-amd64"
92 <<: *docker_build
93
94 docker_fedora-29-amd64:
95 variables:
96 IMG_NAME: "fedora-29-amd64"
97 <<: *docker_build
98
99 docker_fedora-30-amd64:
100 variables:
101 IMG_NAME: "fedora-30-amd64"
102 <<: *docker_build
103
104 docker_fedora-31-amd64:
105 variables:
106 IMG_NAME: "fedora-31-amd64"
107 <<: *docker_build
108
109 docker_centos-7-amd64:
110 variables:
111 IMG_NAME: "centos-7-amd64"
112 <<: *docker_build
113
114 docker_centos-8-amd64:
115 variables:
116 IMG_NAME: "centos-8-amd64"
117 <<: *docker_build
118
119 docker_ubuntu-14_04-amd64:
120 variables:
121 IMG_NAME: "ubuntu-14.04-amd64"
122 <<: *docker_build
123
124 docker_ubuntu-16_04-amd64:
125 variables:
126 IMG_NAME: "ubuntu-16.04-amd64"
127 <<: *docker_build
128
129 docker_ubuntu-18_04-amd64:
130 variables:
131 IMG_NAME: "ubuntu-18.04-amd64"
132 <<: *docker_build
133
134 docker_ubuntu-19_10-amd64:
135 variables:
136 IMG_NAME: "ubuntu-19.10-amd64"
137 <<: *docker_build
138
139 docker_opensuse-15.0-amd64:
140 variables:
141 IMG_NAME: "opensuse-15.0-amd64"
142 <<: *docker_build
143
144 docker_opensuse-15.1-amd64:
145 variables:
146 IMG_NAME: "opensuse-15.1-amd64"
147 <<: *docker_build
148
149 # TODO We want to copy these BSDs to our own virtual machines, to make sure
150 # someone doesn't update them by accident.
151 .freebsd-11-i386: &freebsd-11-i386_env
152 tags:
153 - freebsd
154 - i386
155 #only:
156 #- master
157 #- triggers
158 #- tags
159
160 .freebsd-11-amd64: &freebsd-11-amd64_env
161 tags:
162 - freebsd
163 - amd64
164
165 .build: &build-base
166 stage: build
167 script:
168 - autoreconf
169 - ./configure CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS"
170 # Detect which make is available
171 - MAKE=make
172 - which gmake 2>/dev/null >/dev/null && MAKE=gmake
173 - $MAKE
174 # Run tests if they are available
175 - $MAKE check
176
177 .build-linux: &build-linux
178 <<: *build-base
179 tags:
180 - docker
181 - linux
182 - amd64
183
184 build-debian-8-amd64:
185 <<: *build-linux
186 image: registry.labs.nic.cz/labs/bird:debian-8-amd64
187
188 build-debian-8-i386:
189 <<: *build-linux
190 image: registry.labs.nic.cz/labs/bird:debian-8-i386
191
192 build-debian-9-amd64:
193 <<: *build-linux
194 image: registry.labs.nic.cz/labs/bird:debian-9-amd64
195
196 build-debian-9-i386:
197 <<: *build-linux
198 image: registry.labs.nic.cz/labs/bird:debian-9-i386
199
200 build-debian-10-amd64:
201 <<: *build-linux
202 image: registry.labs.nic.cz/labs/bird:debian-10-amd64
203
204 build-debian-10-i386:
205 <<: *build-linux
206 image: registry.labs.nic.cz/labs/bird:debian-10-i386
207
208 build-debian-testing-amd64:
209 <<: *build-linux
210 image: registry.labs.nic.cz/labs/bird:debian-testing-amd64
211
212 build-debian-testing-i386:
213 <<: *build-linux
214 image: registry.labs.nic.cz/labs/bird:debian-testing-i386
215
216 build-fedora-25-amd64:
217 <<: *build-linux
218 image: registry.labs.nic.cz/labs/bird:fedora-25-amd64
219
220 build-fedora-26-amd64:
221 <<: *build-linux
222 image: registry.labs.nic.cz/labs/bird:fedora-26-amd64
223
224 build-fedora-27-amd64:
225 <<: *build-linux
226 image: registry.labs.nic.cz/labs/bird:fedora-27-amd64
227
228 build-fedora-28-amd64:
229 <<: *build-linux
230 image: registry.labs.nic.cz/labs/bird:fedora-28-amd64
231
232 build-fedora-29-amd64:
233 <<: *build-linux
234 image: registry.labs.nic.cz/labs/bird:fedora-29-amd64
235
236 build-fedora-30-amd64:
237 <<: *build-linux
238 image: registry.labs.nic.cz/labs/bird:fedora-30-amd64
239
240 build-fedora-31-amd64:
241 <<: *build-linux
242 image: registry.labs.nic.cz/labs/bird:fedora-31-amd64
243
244 build-centos-7-amd64:
245 <<: *build-linux
246 image: registry.labs.nic.cz/labs/bird:centos-7-amd64
247
248 build-centos-8-amd64:
249 <<: *build-linux
250 image: registry.labs.nic.cz/labs/bird:centos-8-amd64
251
252 build-ubuntu-14_04-amd64:
253 <<: *build-linux
254 image: registry.labs.nic.cz/labs/bird:ubuntu-14.04-amd64
255
256 build-ubuntu-16_04-amd64:
257 <<: *build-linux
258 image: registry.labs.nic.cz/labs/bird:ubuntu-16.04-amd64
259
260 build-ubuntu-18_04-amd64:
261 <<: *build-linux
262 image: registry.labs.nic.cz/labs/bird:ubuntu-18.04-amd64
263
264 build-ubuntu-19_04-amd64:
265 <<: *build-linux
266 image: registry.labs.nic.cz/labs/bird:ubuntu-19.04-amd64
267
268 build-opensuse-15.0-amd64:
269 <<: *build-linux
270 image: registry.labs.nic.cz/labs/bird:opensuse-15.0-amd64
271
272 build-opensuse-15.1-amd64:
273 <<: *build-linux
274 image: registry.labs.nic.cz/labs/bird:opensuse-15.1-amd64
275
276 build-freebsd-11-amd64:
277 <<: *build-base
278 tags:
279 - freebsd
280 - amd64
281
282 build-freebsd-11-i386:
283 <<: *build-base
284 tags:
285 - freebsd
286 - i386
287
288 build-birdlab:
289 stage: build
290 tags:
291 - birdlab
292 - amd64
293 script:
294 - DIR=$(pwd)
295 - autoreconf
296 - ./configure
297 - make
298 - cd $TOOLS_DIR
299 - sudo git clean -fx
300 - git pull --ff-only
301 - mv $DIR/bird $DIR/birdc netlab/common
302
303 .test: &test-base
304 stage: test
305 needs: [build-birdlab]
306 tags:
307 - birdlab
308 - amd64
309 script:
310 - cd $TOOLS_DIR/netlab
311 - sudo ./stop
312 - sudo ./runtest -m check $TEST_NAME
313
314 test-ospf-base:
315 <<: *test-base
316 variables:
317 TEST_NAME: cf-ospf-base
318
319 test-ospf-default:
320 <<: *test-base
321 variables:
322 TEST_NAME: cf-ospf-default
323
324 test-ospf-priority:
325 <<: *test-base
326 variables:
327 TEST_NAME: cf-ospf-priority
328
329 test-ospf-nbma:
330 <<: *test-base
331 variables:
332 TEST_NAME: cf-ospf-nbma
333
334 test-ospf-ptmp:
335 <<: *test-base
336 variables:
337 TEST_NAME: cf-ospf-ptmp
338
339 test-ospf-authentication:
340 <<: *test-base
341 variables:
342 TEST_NAME: cf-ospf-authentication
343
344 test-ospf-bfd:
345 <<: *test-base
346 variables:
347 TEST_NAME: cf-ospf-bfd
348
349 test-ospf-custom:
350 <<: *test-base
351 variables:
352 TEST_NAME: cf-ospf-custom
353
354 test-ospf-vrf:
355 <<: *test-base
356 variables:
357 TEST_NAME: cf-ospf-vrf
358
359 test-bgp-base:
360 <<: *test-base
361 variables:
362 TEST_NAME: cf-bgp-base
363
364 test-bgp-auth:
365 <<: *test-base
366 variables:
367 TEST_NAME: cf-bgp-auth
368
369 test-bgp-int:
370 <<: *test-base
371 variables:
372 TEST_NAME: cf-bgp-int
373
374 test-bgp-merged:
375 <<: *test-base
376 variables:
377 TEST_NAME: cf-bgp-merged
378
379 test-ebgp-loop:
380 <<: *test-base
381 variables:
382 TEST_NAME: cf-ebgp-loop
383
384 test-ebgp-star:
385 <<: *test-base
386 variables:
387 TEST_NAME: cf-ebgp-star
388
389 test-ibgp-loop:
390 <<: *test-base
391 variables:
392 TEST_NAME: cf-ibgp-loop
393
394 test-ibgp-star:
395 <<: *test-base
396 variables:
397 TEST_NAME: cf-ibgp-flat