2 DEBIAN_FRONTEND: noninteractive
5 DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/"
6 IMG_BASE: registry.nic.cz/labs/bird
7 TOOLS_DIR: /home/gitlab-runner/bird-tools
8 STAYRTR_BINARY: /usr/bin/stayrtr
16 .docker: &docker_build
20 - $DOCKER_CMD login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.nic.cz
21 # Make sure we refresh the base image if it updates (eg. security updates, etc)
22 # If we do just the build, cache is always reused and the freshness of the
23 # base image is never checked. However, pull always asks and updates the
24 # image only if it changed ‒ therefore, the cache is used unless there's a
26 - $DOCKER_CMD pull `sed -ne 's/^FROM //p' "misc/docker/$IMG_NAME/Dockerfile"`
27 - $DOCKER_CMD build -t "bird:$IMG_NAME" "misc/docker/$IMG_NAME"
28 - $DOCKER_CMD tag "bird:$IMG_NAME" "$IMG_BASE:$IMG_NAME"
29 - $DOCKER_CMD push "$IMG_BASE:$IMG_NAME"
31 - rm -f "$HOME/.docker/$CI_JOB_ID/" # cleanup the credentials
33 # That's Docker in Docker
36 # Docker build example
37 #docker_debian-11-amd64:
39 # IMG_NAME: "debian-11-amd64"
47 - ./configure CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS"
48 # Detect which make is available
50 - which gmake 2>/dev/null >/dev/null && MAKE=gmake
53 # Build docs when tools are available
54 - if which linuxdoc pdflatex >/dev/null ; then $MAKE docs ; fi
56 .build-linux: &build-linux
65 image: registry.nic.cz/labs/bird:debian-9-amd64
69 image: registry.nic.cz/labs/bird:debian-9-i386
71 build-debian-10-amd64:
73 image: registry.nic.cz/labs/bird:debian-10-amd64
77 image: registry.nic.cz/labs/bird:debian-10-i386
79 build-debian-11-amd64:
81 image: registry.nic.cz/labs/bird:debian-11-amd64
83 #build-debian-11-i386:
85 # image: registry.nic.cz/labs/bird:debian-11-i386
87 build-debian-testing-amd64:
89 image: registry.nic.cz/labs/bird:debian-testing-amd64
91 #build-debian-testing-i386:
93 # image: registry.nic.cz/labs/bird:debian-testing-i386
95 build-fedora-25-amd64:
97 image: registry.nic.cz/labs/bird:fedora-25-amd64
99 build-fedora-26-amd64:
101 image: registry.nic.cz/labs/bird:fedora-26-amd64
103 build-fedora-27-amd64:
105 image: registry.nic.cz/labs/bird:fedora-27-amd64
107 build-fedora-28-amd64:
109 image: registry.nic.cz/labs/bird:fedora-28-amd64
111 build-fedora-29-amd64:
113 image: registry.nic.cz/labs/bird:fedora-29-amd64
115 build-fedora-30-amd64:
117 image: registry.nic.cz/labs/bird:fedora-30-amd64
119 build-fedora-31-amd64:
121 image: registry.nic.cz/labs/bird:fedora-31-amd64
123 build-fedora-32-amd64:
125 image: registry.nic.cz/labs/bird:fedora-32-amd64
127 build-fedora-33-amd64:
129 image: registry.nic.cz/labs/bird:fedora-33-amd64
131 build-fedora-34-amd64:
133 image: registry.nic.cz/labs/bird:fedora-33-amd64
135 #build-centos-7-amd64:
137 # image: registry.nic.cz/labs/bird:centos-7-amd64
139 build-centos-8-amd64:
141 image: registry.nic.cz/labs/bird:centos-8-amd64
143 build-ubuntu-16_04-amd64:
145 image: registry.nic.cz/labs/bird:ubuntu-16.04-amd64
147 build-ubuntu-18_04-amd64:
149 image: registry.nic.cz/labs/bird:ubuntu-18.04-amd64
151 build-ubuntu-20_04-amd64:
153 image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64
155 build-ubuntu-21_10-amd64:
157 image: registry.nic.cz/labs/bird:ubuntu-21.10-amd64
159 #build-ubuntu-21_04-amd64:
161 # image: registry.nic.cz/labs/bird:ubuntu-21.04-amd64
163 build-opensuse-15.0-amd64:
165 image: registry.nic.cz/labs/bird:opensuse-15.0-amd64
167 build-opensuse-15.1-amd64:
169 image: registry.nic.cz/labs/bird:opensuse-15.1-amd64
171 build-opensuse-15.2-amd64:
173 image: registry.nic.cz/labs/bird:opensuse-15.2-amd64
175 build-opensuse-15.3-amd64:
177 image: registry.nic.cz/labs/bird:opensuse-15.3-amd64
179 #build-freebsd-11-amd64:
185 #build-freebsd-11-i386:
197 #- apkg install -y pkg/pkgs/*/*/*.deb
207 #- apkg install -y pkg/pkgs/*/*/*.rpm
212 .pkg-rpm-wa: &pkg-rpm-wa
215 - sed -i "s/runstatedir/with-runtimedir/" distro/pkg/rpm/bird.spec
218 #- apkg install -y pkg/pkgs/*/*/*.rpm
225 needs: [build-debian-10-amd64]
226 image: registry.nic.cz/labs/bird:debian-10-amd64
230 needs: [build-debian-10-i386]
231 image: registry.nic.cz/labs/bird:debian-10-i386
235 needs: [build-debian-11-amd64]
236 image: registry.nic.cz/labs/bird:debian-11-amd64
240 needs: [build-fedora-30-amd64]
241 image: registry.nic.cz/labs/bird:fedora-30-amd64
245 needs: [build-fedora-31-amd64]
246 image: registry.nic.cz/labs/bird:fedora-31-amd64
250 needs: [build-fedora-32-amd64]
251 image: registry.nic.cz/labs/bird:fedora-32-amd64
255 needs: [build-fedora-33-amd64]
256 image: registry.nic.cz/labs/bird:fedora-33-amd64
260 needs: [build-fedora-34-amd64]
261 image: registry.nic.cz/labs/bird:fedora-34-amd64
266 # LC_ALL: en_US.UTF-8
267 # needs: [build-centos-7-amd64]
268 # image: registry.nic.cz/labs/bird:centos-7-amd64
272 needs: [build-centos-8-amd64]
273 image: registry.nic.cz/labs/bird:centos-8-amd64
275 pkg-ubuntu-18.04-amd64:
277 needs: [build-ubuntu-18_04-amd64]
278 image: registry.nic.cz/labs/bird:ubuntu-18.04-amd64
280 pkg-ubuntu-20.04-amd64:
282 needs: [build-ubuntu-20_04-amd64]
283 image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64
286 pkg-ubuntu-21.10-amd64:
288 needs: [build-ubuntu-21_10-amd64]
289 image: registry.nic.cz/labs/bird:ubuntu-21.10-amd64
291 #pkg-ubuntu-21.04-amd64:
293 # needs: [build-ubuntu-21_04-amd64]
294 # image: registry.nic.cz/labs/bird:ubuntu-21.04-amd64
296 pkg-opensuse-15.1-amd64:
298 needs: [build-opensuse-15.1-amd64]
299 image: registry.nic.cz/labs/bird:opensuse-15.1-amd64
301 pkg-opensuse-15.2-amd64:
303 needs: [build-opensuse-15.2-amd64]
304 image: registry.nic.cz/labs/bird:opensuse-15.2-amd64
306 pkg-opensuse-15.3-amd64:
308 needs: [build-opensuse-15.3-amd64]
309 image: registry.nic.cz/labs/bird:opensuse-15.3-amd64
325 - mv $DIR/bird $DIR/birdc netlab/common
326 - ln -s $STAYRTR_BINARY netlab/common/stayrtr
330 needs: [build-netlab]
335 - cd $TOOLS_DIR/netlab
337 - sudo ./runtest -s v2 -m check $TEST_NAME
342 TEST_NAME: cf-ospf-base
347 TEST_NAME: cf-ospf-default
352 TEST_NAME: cf-ospf-priority
357 TEST_NAME: cf-ospf-nbma
362 TEST_NAME: cf-ospf-ptmp
364 test-ospf-authentication:
367 TEST_NAME: cf-ospf-authentication
372 TEST_NAME: cf-ospf-bfd
377 TEST_NAME: cf-ospf-custom
382 TEST_NAME: cf-ospf-area
387 TEST_NAME: cf-ospf-vrf
392 TEST_NAME: cf-bgp-base
397 TEST_NAME: cf-bgp-auth
402 TEST_NAME: cf-bgp-int
407 TEST_NAME: cf-bgp-merged
412 TEST_NAME: cf-bgp-flowspec
414 test-bgp-rs-multitab:
417 TEST_NAME: cf-bgp-rs-multitab
422 TEST_NAME: cf-ebgp-loop
427 TEST_NAME: cf-ebgp-star
432 TEST_NAME: cf-ebgp-role
437 TEST_NAME: cf-ebgp-graceful
439 test-ebgp-import-limit:
442 TEST_NAME: cf-ebgp-import-limit
447 TEST_NAME: cf-ibgp-loop
452 TEST_NAME: cf-ibgp-loop-big
457 TEST_NAME: cf-ibgp-flat
462 TEST_NAME: cf-babel-base
467 TEST_NAME: cf-babel-auth
472 TEST_NAME: cf-rip-base
477 TEST_NAME: cf-kernel-learn
482 TEST_NAME: cf-mpls-bgp
487 TEST_NAME: cf-mpls-bgp-l3vpn
490 .build-birdlab-base: &build-birdlab-base
498 build-birdlab-debian-11:
499 <<: *build-birdlab-base
504 build-birdlab-centos-08:
505 <<: *build-birdlab-base
510 build-birdlab-fedora-37:
511 <<: *build-birdlab-base
516 build-birdlab-freebsd-13:
517 <<: *build-birdlab-base
522 build-birdlab-openbsd-71:
523 <<: *build-birdlab-base
525 AUTOCONF_VERSION: "2.71"