]> git.ipfire.org Git - thirdparty/bird.git/blobdiff - .gitlab-ci.yml
Filter: Fix function comparison
[thirdparty/bird.git] / .gitlab-ci.yml
index 059894841604db9126008e369e1631c939f3d091..602121608280b9ede8be3f0c878698aa2bdca446 100644 (file)
@@ -4,10 +4,12 @@ variables:
   GIT_STRATEGY: fetch
   DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/"
   IMG_BASE: registry.labs.nic.cz/labs/bird
+  TOOLS_DIR: /var/lib/gitlab-runner/bird-tools
 
 stages:
   - image
   - build
+  - test
 
 .docker: &docker_build
   stage: image
@@ -34,34 +36,44 @@ docker_debian-7-amd64:
     IMG_NAME: "debian-7-amd64"
   <<: *docker_build
 
+docker_debian-7-i386:
+  variables:
+    IMG_NAME: "debian-7-i386"
+  <<: *docker_build
+
 docker_debian-8-amd64:
   variables:
     IMG_NAME: "debian-8-amd64"
   <<: *docker_build
 
+docker_debian-8-i386:
+  variables:
+    IMG_NAME: "debian-8-i386"
+  <<: *docker_build
+
 docker_debian-9-amd64:
   variables:
     IMG_NAME: "debian-9-amd64"
   <<: *docker_build
 
-docker_debian-testing-amd64:
+docker_debian-9-i386:
   variables:
-    IMG_NAME: "debian-testing-amd64"
+    IMG_NAME: "debian-9-i386"
   <<: *docker_build
 
-docker_debian-7-i386:
+docker_debian-10-amd64:
   variables:
-    IMG_NAME: "debian-7-i386"
+    IMG_NAME: "debian-10-amd64"
   <<: *docker_build
 
-docker_debian-8-i386:
+docker_debian-10-i386:
   variables:
-    IMG_NAME: "debian-8-i386"
+    IMG_NAME: "debian-10-i386"
   <<: *docker_build
 
-docker_debian-9-i386:
+docker_debian-testing-amd64:
   variables:
-    IMG_NAME: "debian-9-i386"
+    IMG_NAME: "debian-testing-amd64"
   <<: *docker_build
 
 docker_debian-testing-i386:
@@ -79,9 +91,29 @@ docker_fedora-26-amd64:
     IMG_NAME: "fedora-26-amd64"
   <<: *docker_build
 
-docker_centos-6-amd64:
+docker_fedora-27-amd64:
+  variables:
+    IMG_NAME: "fedora-27-amd64"
+  <<: *docker_build
+
+docker_fedora-28-amd64:
+  variables:
+    IMG_NAME: "fedora-28-amd64"
+  <<: *docker_build
+
+docker_fedora-29-amd64:
+  variables:
+    IMG_NAME: "fedora-29-amd64"
+  <<: *docker_build
+
+docker_fedora-30-amd64:
   variables:
-    IMG_NAME: "centos-6-amd64"
+    IMG_NAME: "fedora-30-amd64"
+  <<: *docker_build
+
+docker_fedora-31-amd64:
+  variables:
+    IMG_NAME: "fedora-31-amd64"
   <<: *docker_build
 
 docker_centos-7-amd64:
@@ -89,131 +121,44 @@ docker_centos-7-amd64:
     IMG_NAME: "centos-7-amd64"
   <<: *docker_build
 
-docker_opensuse-42_3-amd64:
+docker_centos-8-amd64:
   variables:
-    IMG_NAME: "opensuse-42.3-amd64"
+    IMG_NAME: "centos-8-amd64"
   <<: *docker_build
 
 docker_ubuntu-14_04-amd64:
   variables:
     IMG_NAME: "ubuntu-14.04-amd64"
   <<: *docker_build
-
 docker_ubuntu-16_04-amd64:
   variables:
     IMG_NAME: "ubuntu-16.04-amd64"
   <<: *docker_build
+docker_ubuntu-18_04-amd64:
+  variables:
+    IMG_NAME: "ubuntu-18.04-amd64"
+  <<: *docker_build
+docker_ubuntu-19_04-amd64:
+  variables:
+    IMG_NAME: "ubuntu-19.04-amd64"
+  <<: *docker_build
 
-.debian-7-i386: &debian-7-i386_env
-  image: registry.labs.nic.cz/labs/bird:debian-7-i386
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.debian-8-i386: &debian-8-i386_env
-  image: registry.labs.nic.cz/labs/bird:debian-8-i386
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.debian-9-i386: &debian-9-i386_env
-  image: registry.labs.nic.cz/labs/bird:debian-9-i386
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.debian-testing-i386: &debian-testing-i386_env
-  image: registry.labs.nic.cz/labs/bird:debian-testing-i386
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.debian-7-amd64: &debian-7-amd64_env
-  image: registry.labs.nic.cz/labs/bird:debian-7-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.debian-8-amd64: &debian-8-amd64_env
-  image: registry.labs.nic.cz/labs/bird:debian-8-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.debian-9-amd64: &debian-9-amd64_env
-  image: registry.labs.nic.cz/labs/bird:debian-9-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.debian-testing-amd64: &debian-testing-amd64_env
-  image: registry.labs.nic.cz/labs/bird:debian-testing-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.fedora-25-amd64: &fedora-25-amd64_env
-  image: registry.labs.nic.cz/labs/bird:fedora-25-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.fedora-26-amd64: &fedora-26-amd64_env
-  image: registry.labs.nic.cz/labs/bird:fedora-26-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.centos-6-amd64: &centos-6-amd64_env
-  image: registry.labs.nic.cz/labs/bird:centos-6-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.centos-7-amd64: &centos-7-amd64_env
-  image: registry.labs.nic.cz/labs/bird:centos-7-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.opensuse-42_3-amd64: &opensuse-42_3-amd64_env
-  image: registry.labs.nic.cz/labs/bird:opensuse-42.3-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
-
-.ubuntu-14_04-amd64: &ubuntu-14_04-amd64_env
-  image: registry.labs.nic.cz/labs/bird:ubuntu-14.04-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
+docker_opensuse-15.0-amd64:
+  variables:
+    IMG_NAME: "opensuse-15.0-amd64"
+  <<: *docker_build
 
-.ubuntu-16_04-amd64: &ubuntu-16_04-amd64_env
-  image: registry.labs.nic.cz/labs/bird:ubuntu-16.04-amd64
-  tags:
-  - docker
-  - linux
-  - amd64
+docker_opensuse-15.1-amd64:
+  variables:
+    IMG_NAME: "opensuse-15.1-amd64"
+  <<: *docker_build
 
-# TODO We want to copy these BSDs to our own virtual machines, to make sure someone doesn't update them by accident.
+# TODO We want to copy these BSDs to our own virtual machines, to make sure
+# someone doesn't update them by accident.
 .freebsd-11-i386: &freebsd-11-i386_env
-  variables:
-    CPPFLAGS: "-I/usr/local/include"
-    LDFLAGS: "-L/usr/local/lib"
   tags:
   - freebsd
   - i386
@@ -223,18 +168,11 @@ docker_ubuntu-16_04-amd64:
   #- tags
 
 .freebsd-11-amd64: &freebsd-11-amd64_env
-  variables:
-    CPPFLAGS: "-I/usr/local/include"
-    LDFLAGS: "-L/usr/local/lib"
   tags:
   - freebsd
   - amd64
-  #only:
-  #- master
-  #- triggers
-  #- tags
 
-.build: &build_job
+.build: &build-base
   stage: build
   script:
   - autoreconf
@@ -243,107 +181,154 @@ docker_ubuntu-16_04-amd64:
   - MAKE=make
   - which gmake 2>/dev/null >/dev/null && MAKE=gmake
   - $MAKE
-  # Run tests if they are available (eg. don't fail if "check" isn't a valid make target)
-  - $MAKE check || [ "$?" = 2 ]
+  # Run tests if they are available
+  - $MAKE check
+
+.build-linux: &build-linux
+  <<: *build-base
+  tags:
+    - docker
+    - linux
+    - amd64
 
 build-debian-7-amd64:
-  variables:
-    IPV6: "no"
-  <<: *debian-7-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-7-amd64
+
+build-debian-7-i386:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-7-i386
 
 build-debian-8-amd64:
-  variables:
-    IPV6: "no"
-  <<: *debian-8-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-8-amd64
+
+build-debian-8-i386:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-8-i386
 
 build-debian-9-amd64:
-  variables:
-    IPV6: "no"
-  <<: *debian-9-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-9-amd64
+
+build-debian-9-i386:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-9-i386
+
+build-debian-10-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-10-amd64
+
+build-debian-10-i386:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-10-i386
 
 build-debian-testing-amd64:
-  variables:
-    IPV6: "no"
-  <<: *debian-testing-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-testing-amd64
+
+build-debian-testing-i386:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:debian-testing-i386
 
 build-fedora-25-amd64:
-  variables:
-    IPV6: "no"
-  <<: *fedora-25-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:fedora-25-amd64
 
 build-fedora-26-amd64:
-  variables:
-    IPV6: "no"
-  <<: *fedora-26-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:fedora-26-amd64
 
-build-centos-6-amd64:
-  variables:
-    IPV6: "no"
-  <<: *centos-6-amd64_env
-  <<: *build_job
+build-fedora-27-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:fedora-27-amd64
+
+build-fedora-28-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:fedora-28-amd64
+
+build-fedora-29-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:fedora-29-amd64
+
+build-fedora-30-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:fedora-30-amd64
+
+build-fedora-31-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:fedora-31-amd64
 
 build-centos-7-amd64:
-  variables:
-    IPV6: "no"
-  <<: *centos-7-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:centos-7-amd64
 
-build-opensuse-42_3-amd64:
-  variables:
-    IPV6: "no"
-  <<: *opensuse-42_3-amd64_env
-  <<: *build_job
+build-centos-8-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:centos-8-amd64
 
 build-ubuntu-14_04-amd64:
-  variables:
-    IPV6: "no"
-  <<: *ubuntu-14_04-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:ubuntu-14.04-amd64
 
 build-ubuntu-16_04-amd64:
-  variables:
-    IPV6: "no"
-  <<: *ubuntu-16_04-amd64_env
-  <<: *build_job
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:ubuntu-16.04-amd64
 
-build-debian-7-i386:
-  variables:
-    IPV6: "no"
-  <<: *debian-7-i386_env
-  <<: *build_job
+build-ubuntu-18_04-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:ubuntu-18.04-amd64
 
-build-debian-8-i386:
-  variables:
-    IPV6: "no"
-  <<: *debian-8-i386_env
-  <<: *build_job
+build-ubuntu-19_04-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:ubuntu-19.04-amd64
 
-build-debian-9-i386:
-  variables:
-    IPV6: "no"
-  <<: *debian-9-i386_env
-  <<: *build_job
+build-opensuse-15.0-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:opensuse-15.0-amd64
 
-build-debian-testing-i386:
-  variables:
-    IPV6: "no"
-  <<: *debian-testing-i386_env
-  <<: *build_job
+build-opensuse-15.1-amd64:
+  <<: *build-linux
+  image: registry.labs.nic.cz/labs/bird:opensuse-15.1-amd64
 
 build-freebsd-11-amd64:
-  variables:
-    IPV6: "no"
-  <<: *freebsd-11-amd64_env
-  <<: *build_job
+  <<: *build-base
+  tags:
+    - freebsd
+    - amd64
 
 build-freebsd-11-i386:
+  <<: *build-base
+  tags:
+    - freebsd
+    - i386
+
+build-birdlab:
+  stage: build
+  tags:
+    - birdlab
+    - amd64
+  script:
+    - DIR=$(pwd)
+    - autoreconf
+    - ./configure
+    - make
+    - cd $TOOLS_DIR
+    - sudo git clean -fx
+    - git pull --ff-only
+    - mv $DIR/bird $DIR/birdc netlab/common
+
+.test: &test-base
+  stage: test
+  needs: [build-birdlab]
+  tags:
+    - birdlab
+    - amd64
+  script:
+    - cd $TOOLS_DIR/netlab
+    - sudo ./runtest -m check $TEST_NAME
+
+test-ospf:
+  <<: *test-base
   variables:
-    IPV6: "no"
-  <<: *freebsd-11-i386_env
-  <<: *build_job
+    TEST_NAME: cf-ospf