From a86581113c4823b188a2213f4a760ff08a8c55e9 Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Mon, 8 Dec 2025 10:42:13 +0100 Subject: [PATCH] CI: Temporarily enabling cross-platform deb build This commit is a temporary measure. We'll refactor the CI and make the builds more systematic. --- .gitlab-ci.yml | 1019 ++++++++++++++++++++++++++++------- misc/gitlab/data.yml.j2 | 61 ++- misc/gitlab/template.yml.j2 | 86 ++- 3 files changed, 958 insertions(+), 208 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3355bee60..966344270 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,3 +1,4 @@ + ########################################################### ##### ##### ##### DO NOT EDIT THIS FILE BY HAND ##### @@ -16,6 +17,7 @@ variables: DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/" IMG_BASE: registry.nic.cz/labs/bird TOOLS_DIR: /home/gitlab-runner/bird-tools + PBUILDER_DIR: /home/gitlab-runner/pbuilder STAYRTR_BINARY: /usr/local/bin/stayrtr stages: @@ -134,203 +136,163 @@ docker-docbuilder: variables: IMG_NAME: "docbuilder" <<: *docker-build - docker-centos-7-amd64: variables: IMG_NAME: "centos-7-amd64" <<: *docker-build - docker-centos-8-amd64: variables: IMG_NAME: "centos-8-amd64" <<: *docker-build - docker-rocky-08-amd64: variables: IMG_NAME: "rocky-08-amd64" <<: *docker-build - docker-rocky-09-amd64: variables: IMG_NAME: "rocky-09-amd64" <<: *docker-build - docker-oracle-08-amd64: variables: IMG_NAME: "oracle-08-amd64" <<: *docker-build - docker-oracle-09-amd64: variables: IMG_NAME: "oracle-09-amd64" <<: *docker-build - docker-oracle-10-amd64: variables: IMG_NAME: "oracle-10-amd64" <<: *docker-build - docker-fedora-32-amd64: variables: IMG_NAME: "fedora-32-amd64" <<: *docker-build - docker-fedora-33-amd64: variables: IMG_NAME: "fedora-33-amd64" <<: *docker-build - docker-opensuse-15.0-amd64: variables: IMG_NAME: "opensuse-15.0-amd64" <<: *docker-build - docker-opensuse-15.1-amd64: variables: IMG_NAME: "opensuse-15.1-amd64" <<: *docker-build - docker-opensuse-15.2-amd64: variables: IMG_NAME: "opensuse-15.2-amd64" <<: *docker-build - docker-opensuse-15.3-amd64: variables: IMG_NAME: "opensuse-15.3-amd64" <<: *docker-build - docker-opensuse-15.4-amd64: variables: IMG_NAME: "opensuse-15.4-amd64" <<: *docker-build - docker-opensuse-15.5-amd64: variables: IMG_NAME: "opensuse-15.5-amd64" <<: *docker-build - docker-fedora-34-amd64: variables: IMG_NAME: "fedora-34-amd64" <<: *docker-build - docker-fedora-35-amd64: variables: IMG_NAME: "fedora-35-amd64" <<: *docker-build - docker-fedora-36-amd64: variables: IMG_NAME: "fedora-36-amd64" <<: *docker-build - docker-fedora-37-amd64: variables: IMG_NAME: "fedora-37-amd64" <<: *docker-build - docker-fedora-38-amd64: variables: IMG_NAME: "fedora-38-amd64" <<: *docker-build - docker-fedora-39-amd64: variables: IMG_NAME: "fedora-39-amd64" <<: *docker-build - docker-fedora-40-amd64: variables: IMG_NAME: "fedora-40-amd64" <<: *docker-build - docker-fedora-41-amd64: variables: IMG_NAME: "fedora-41-amd64" <<: *docker-build - docker-fedora-42-amd64: variables: IMG_NAME: "fedora-42-amd64" <<: *docker-build - docker-fedora-43-amd64: variables: IMG_NAME: "fedora-43-amd64" <<: *docker-build - docker-ubuntu-18.04-amd64: variables: IMG_NAME: "ubuntu-18.04-amd64" <<: *docker-build - -docker-debian-11-i386: +docker-ubuntu-20.04-amd64: variables: - IMG_NAME: "debian-11-i386" + IMG_NAME: "ubuntu-20.04-amd64" <<: *docker-build - docker-debian-11-amd64: variables: IMG_NAME: "debian-11-amd64" <<: *docker-build - +docker-debian-11-i386: + variables: + IMG_NAME: "debian-11-i386" + <<: *docker-build docker-debian-12-amd64: variables: IMG_NAME: "debian-12-amd64" <<: *docker-build - docker-debian-12-i386: variables: IMG_NAME: "debian-12-i386" <<: *docker-build - docker-debian-13-amd64: variables: IMG_NAME: "debian-13-amd64" <<: *docker-build - docker-debian-13-i386: variables: IMG_NAME: "debian-13-i386" <<: *docker-build - docker-debian-testing-amd64: variables: IMG_NAME: "debian-testing-amd64" <<: *docker-build - docker-debian-testing-i386: variables: IMG_NAME: "debian-testing-i386" <<: *docker-build - -docker-ubuntu-20.04-amd64: - variables: - IMG_NAME: "ubuntu-20.04-amd64" - <<: *docker-build - docker-ubuntu-22.04-amd64: variables: IMG_NAME: "ubuntu-22.04-amd64" <<: *docker-build - docker-ubuntu-24.04-amd64: variables: IMG_NAME: "ubuntu-24.04-amd64" <<: *docker-build - docker-ubuntu-25.04-amd64: variables: IMG_NAME: "ubuntu-25.04-amd64" <<: *docker-build - docker-ubuntu-25.10-amd64: variables: IMG_NAME: "ubuntu-25.10-amd64" <<: *docker-build - ##################################################### ## Linux distro build tests inside Docker builders ## ##################################################### @@ -395,266 +357,228 @@ build-centos-7-amd64: variables: CC: /opt/rh/devtoolset-8/root/usr/bin/gcc LC_ALL: en_US.UTF-8 - build-centos-8-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-centos-8-amd64 optional: true image: registry.nic.cz/labs/bird:centos-8-amd64 - build-rocky-08-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-rocky-08-amd64 optional: true image: registry.nic.cz/labs/bird:rocky-08-amd64 - build-rocky-09-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-rocky-09-amd64 optional: true image: registry.nic.cz/labs/bird:rocky-09-amd64 - build-oracle-08-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-oracle-08-amd64 optional: true image: registry.nic.cz/labs/bird:oracle-08-amd64 - build-oracle-09-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-oracle-09-amd64 optional: true image: registry.nic.cz/labs/bird:oracle-09-amd64 - build-oracle-10-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-oracle-10-amd64 optional: true image: registry.nic.cz/labs/bird:oracle-10-amd64 - build-fedora-32-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-32-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-32-amd64 - build-fedora-33-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-33-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-33-amd64 - build-opensuse-15.0-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-opensuse-15.0-amd64 optional: true image: registry.nic.cz/labs/bird:opensuse-15.0-amd64 - build-opensuse-15.1-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-opensuse-15.1-amd64 optional: true image: registry.nic.cz/labs/bird:opensuse-15.1-amd64 - build-opensuse-15.2-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-opensuse-15.2-amd64 optional: true image: registry.nic.cz/labs/bird:opensuse-15.2-amd64 - build-opensuse-15.3-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-opensuse-15.3-amd64 optional: true image: registry.nic.cz/labs/bird:opensuse-15.3-amd64 - build-opensuse-15.4-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-opensuse-15.4-amd64 optional: true image: registry.nic.cz/labs/bird:opensuse-15.4-amd64 - build-opensuse-15.5-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-opensuse-15.5-amd64 optional: true image: registry.nic.cz/labs/bird:opensuse-15.5-amd64 - build-fedora-34-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-34-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-34-amd64 - build-fedora-35-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-35-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-35-amd64 - build-fedora-36-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-36-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-36-amd64 - build-fedora-37-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-37-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-37-amd64 - build-fedora-38-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-38-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-38-amd64 - build-fedora-39-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-39-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-39-amd64 - build-fedora-40-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-40-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-40-amd64 - build-fedora-41-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-41-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-41-amd64 - build-fedora-42-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-42-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-42-amd64 - build-fedora-43-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-fedora-43-amd64 optional: true image: registry.nic.cz/labs/bird:fedora-43-amd64 - build-ubuntu-18.04-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-ubuntu-18.04-amd64 optional: true image: registry.nic.cz/labs/bird:ubuntu-18.04-amd64 - -build-debian-11-i386: +build-ubuntu-20.04-amd64: <<: *build-docker-linux-amd64 needs: - - job: docker-debian-11-i386 + - job: docker-ubuntu-20.04-amd64 optional: true - image: registry.nic.cz/labs/bird:debian-11-i386 - + image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64 build-debian-11-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-debian-11-amd64 optional: true image: registry.nic.cz/labs/bird:debian-11-amd64 - +build-debian-11-i386: + <<: *build-docker-linux-amd64 + needs: + - job: docker-debian-11-i386 + optional: true + image: registry.nic.cz/labs/bird:debian-11-i386 build-debian-12-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-debian-12-amd64 optional: true image: registry.nic.cz/labs/bird:debian-12-amd64 - build-debian-12-i386: <<: *build-docker-linux-amd64 needs: - job: docker-debian-12-i386 optional: true image: registry.nic.cz/labs/bird:debian-12-i386 - build-debian-13-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-debian-13-amd64 optional: true image: registry.nic.cz/labs/bird:debian-13-amd64 - build-debian-13-i386: <<: *build-docker-linux-amd64 needs: - job: docker-debian-13-i386 optional: true image: registry.nic.cz/labs/bird:debian-13-i386 - build-debian-testing-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-debian-testing-amd64 optional: true image: registry.nic.cz/labs/bird:debian-testing-amd64 - build-debian-testing-i386: <<: *build-docker-linux-amd64 needs: - job: docker-debian-testing-i386 optional: true image: registry.nic.cz/labs/bird:debian-testing-i386 - -build-ubuntu-20.04-amd64: - <<: *build-docker-linux-amd64 - needs: - - job: docker-ubuntu-20.04-amd64 - optional: true - image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64 - build-ubuntu-22.04-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-ubuntu-22.04-amd64 optional: true image: registry.nic.cz/labs/bird:ubuntu-22.04-amd64 - build-ubuntu-24.04-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-ubuntu-24.04-amd64 optional: true image: registry.nic.cz/labs/bird:ubuntu-24.04-amd64 - build-ubuntu-25.04-amd64: <<: *build-docker-linux-amd64 needs: - job: docker-ubuntu-25.04-amd64 optional: true image: registry.nic.cz/labs/bird:ubuntu-25.04-amd64 - build-ubuntu-25.10-amd64: <<: *build-docker-linux-amd64 needs: @@ -662,7 +586,6 @@ build-ubuntu-25.10-amd64: optional: true image: registry.nic.cz/labs/bird:ubuntu-25.10-amd64 - ####################################################### ## A special task for preparing the release archives ## ####################################################### @@ -754,7 +677,6 @@ pkg-centos-7-amd64: variables: CC: /opt/rh/devtoolset-8/root/usr/bin/gcc LC_ALL: en_US.UTF-8 - pkg-centos-8-amd64: <<: *pkg-rpm-wa needs: @@ -762,7 +684,6 @@ pkg-centos-8-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:centos-8-amd64 - pkg-rocky-08-amd64: <<: *pkg-rpm-wa needs: @@ -770,7 +691,6 @@ pkg-rocky-08-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:rocky-08-amd64 - pkg-rocky-09-amd64: <<: *pkg-rpm-wa needs: @@ -778,7 +698,6 @@ pkg-rocky-09-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:rocky-09-amd64 - pkg-oracle-08-amd64: <<: *pkg-rpm-wa needs: @@ -786,7 +705,6 @@ pkg-oracle-08-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:oracle-08-amd64 - pkg-oracle-09-amd64: <<: *pkg-rpm-wa needs: @@ -794,7 +712,6 @@ pkg-oracle-09-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:oracle-09-amd64 - pkg-oracle-10-amd64: <<: *pkg-rpm-wa needs: @@ -802,7 +719,6 @@ pkg-oracle-10-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:oracle-10-amd64 - pkg-fedora-32-amd64: <<: *pkg-rpm-wa needs: @@ -810,7 +726,6 @@ pkg-fedora-32-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-32-amd64 - pkg-fedora-33-amd64: <<: *pkg-rpm-wa needs: @@ -818,7 +733,6 @@ pkg-fedora-33-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-33-amd64 - pkg-opensuse-15.0-amd64: <<: *pkg-rpm-wa needs: @@ -826,7 +740,6 @@ pkg-opensuse-15.0-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:opensuse-15.0-amd64 - pkg-opensuse-15.1-amd64: <<: *pkg-rpm-wa needs: @@ -834,7 +747,6 @@ pkg-opensuse-15.1-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:opensuse-15.1-amd64 - pkg-opensuse-15.2-amd64: <<: *pkg-rpm-wa needs: @@ -842,7 +754,6 @@ pkg-opensuse-15.2-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:opensuse-15.2-amd64 - pkg-opensuse-15.3-amd64: <<: *pkg-rpm-wa needs: @@ -850,7 +761,6 @@ pkg-opensuse-15.3-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:opensuse-15.3-amd64 - pkg-opensuse-15.4-amd64: <<: *pkg-rpm-wa needs: @@ -858,7 +768,6 @@ pkg-opensuse-15.4-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:opensuse-15.4-amd64 - pkg-opensuse-15.5-amd64: <<: *pkg-rpm-wa needs: @@ -866,7 +775,6 @@ pkg-opensuse-15.5-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:opensuse-15.5-amd64 - pkg-fedora-34-amd64: <<: *pkg-rpm needs: @@ -874,7 +782,6 @@ pkg-fedora-34-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-34-amd64 - pkg-fedora-35-amd64: <<: *pkg-rpm needs: @@ -882,7 +789,6 @@ pkg-fedora-35-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-35-amd64 - pkg-fedora-36-amd64: <<: *pkg-rpm needs: @@ -890,7 +796,6 @@ pkg-fedora-36-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-36-amd64 - pkg-fedora-37-amd64: <<: *pkg-rpm needs: @@ -898,7 +803,6 @@ pkg-fedora-37-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-37-amd64 - pkg-fedora-38-amd64: <<: *pkg-rpm needs: @@ -906,7 +810,6 @@ pkg-fedora-38-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-38-amd64 - pkg-fedora-39-amd64: <<: *pkg-rpm needs: @@ -914,7 +817,6 @@ pkg-fedora-39-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-39-amd64 - pkg-fedora-40-amd64: <<: *pkg-rpm needs: @@ -922,7 +824,6 @@ pkg-fedora-40-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-40-amd64 - pkg-fedora-41-amd64: <<: *pkg-rpm needs: @@ -930,7 +831,6 @@ pkg-fedora-41-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-41-amd64 - pkg-fedora-42-amd64: <<: *pkg-rpm needs: @@ -938,7 +838,6 @@ pkg-fedora-42-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-42-amd64 - pkg-fedora-43-amd64: <<: *pkg-rpm needs: @@ -946,31 +845,34 @@ pkg-fedora-43-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:fedora-43-amd64 - pkg-ubuntu-18.04-amd64: - <<: *pkg-deb-legacy + <<: *pkg-deb needs: - job: build-ubuntu-18.04-amd64 artifacts: false - job: build-release image: registry.nic.cz/labs/bird:ubuntu-18.04-amd64 - -pkg-debian-11-i386: - <<: *pkg-deb-legacy +pkg-ubuntu-20.04-amd64: + <<: *pkg-deb needs: - - job: build-debian-11-i386 + - job: build-ubuntu-20.04-amd64 artifacts: false - job: build-release - image: registry.nic.cz/labs/bird:debian-11-i386 - + image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64 pkg-debian-11-amd64: - <<: *pkg-deb-legacy + <<: *pkg-deb needs: - job: build-debian-11-amd64 artifacts: false - job: build-release image: registry.nic.cz/labs/bird:debian-11-amd64 - +pkg-debian-11-i386: + <<: *pkg-deb + needs: + - job: build-debian-11-i386 + artifacts: false + - job: build-release + image: registry.nic.cz/labs/bird:debian-11-i386 pkg-debian-12-amd64: <<: *pkg-deb needs: @@ -978,7 +880,6 @@ pkg-debian-12-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:debian-12-amd64 - pkg-debian-12-i386: <<: *pkg-deb needs: @@ -986,7 +887,6 @@ pkg-debian-12-i386: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:debian-12-i386 - pkg-debian-13-amd64: <<: *pkg-deb needs: @@ -994,7 +894,6 @@ pkg-debian-13-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:debian-13-amd64 - pkg-debian-13-i386: <<: *pkg-deb needs: @@ -1002,7 +901,6 @@ pkg-debian-13-i386: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:debian-13-i386 - pkg-debian-testing-amd64: <<: *pkg-deb needs: @@ -1010,7 +908,6 @@ pkg-debian-testing-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:debian-testing-amd64 - pkg-debian-testing-i386: <<: *pkg-deb needs: @@ -1018,15 +915,6 @@ pkg-debian-testing-i386: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:debian-testing-i386 - -pkg-ubuntu-20.04-amd64: - <<: *pkg-deb - needs: - - job: build-ubuntu-20.04-amd64 - artifacts: false - - job: build-release - image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64 - pkg-ubuntu-22.04-amd64: <<: *pkg-deb needs: @@ -1034,7 +922,6 @@ pkg-ubuntu-22.04-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:ubuntu-22.04-amd64 - pkg-ubuntu-24.04-amd64: <<: *pkg-deb needs: @@ -1042,7 +929,6 @@ pkg-ubuntu-24.04-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:ubuntu-24.04-amd64 - pkg-ubuntu-25.04-amd64: <<: *pkg-deb needs: @@ -1050,7 +936,6 @@ pkg-ubuntu-25.04-amd64: artifacts: false - job: build-release image: registry.nic.cz/labs/bird:ubuntu-25.04-amd64 - pkg-ubuntu-25.10-amd64: <<: *pkg-deb needs: @@ -1059,7 +944,6 @@ pkg-ubuntu-25.10-amd64: - job: build-release image: registry.nic.cz/labs/bird:ubuntu-25.10-amd64 - ## Package installability checks .install-deb: &install-deb @@ -1114,235 +998,986 @@ install-centos-7-amd64: needs: - job: pkg-centos-7-amd64 image: registry.nic.cz/labs/bird:centos-7-amd64 - install-centos-8-amd64: <<: *install-rpm needs: - job: pkg-centos-8-amd64 image: registry.nic.cz/labs/bird:centos-8-amd64 - install-rocky-08-amd64: <<: *install-rpm needs: - job: pkg-rocky-08-amd64 image: registry.nic.cz/labs/bird:rocky-08-amd64 - install-rocky-09-amd64: <<: *install-rpm needs: - job: pkg-rocky-09-amd64 image: registry.nic.cz/labs/bird:rocky-09-amd64 - install-oracle-08-amd64: <<: *install-rpm needs: - job: pkg-oracle-08-amd64 image: registry.nic.cz/labs/bird:oracle-08-amd64 - install-oracle-09-amd64: <<: *install-rpm needs: - job: pkg-oracle-09-amd64 image: registry.nic.cz/labs/bird:oracle-09-amd64 - install-oracle-10-amd64: <<: *install-rpm needs: - job: pkg-oracle-10-amd64 image: registry.nic.cz/labs/bird:oracle-10-amd64 - install-fedora-32-amd64: <<: *install-rpm needs: - job: pkg-fedora-32-amd64 image: registry.nic.cz/labs/bird:fedora-32-amd64 - install-fedora-33-amd64: <<: *install-rpm needs: - job: pkg-fedora-33-amd64 image: registry.nic.cz/labs/bird:fedora-33-amd64 - install-opensuse-15.0-amd64: <<: *install-rpm needs: - job: pkg-opensuse-15.0-amd64 image: registry.nic.cz/labs/bird:opensuse-15.0-amd64 - install-opensuse-15.1-amd64: <<: *install-rpm needs: - job: pkg-opensuse-15.1-amd64 image: registry.nic.cz/labs/bird:opensuse-15.1-amd64 - install-opensuse-15.2-amd64: <<: *install-rpm needs: - job: pkg-opensuse-15.2-amd64 image: registry.nic.cz/labs/bird:opensuse-15.2-amd64 - install-opensuse-15.3-amd64: <<: *install-rpm needs: - job: pkg-opensuse-15.3-amd64 image: registry.nic.cz/labs/bird:opensuse-15.3-amd64 - install-opensuse-15.4-amd64: <<: *install-rpm needs: - job: pkg-opensuse-15.4-amd64 image: registry.nic.cz/labs/bird:opensuse-15.4-amd64 - install-opensuse-15.5-amd64: <<: *install-rpm needs: - job: pkg-opensuse-15.5-amd64 image: registry.nic.cz/labs/bird:opensuse-15.5-amd64 - install-fedora-34-amd64: <<: *install-rpm needs: - job: pkg-fedora-34-amd64 image: registry.nic.cz/labs/bird:fedora-34-amd64 - install-fedora-35-amd64: <<: *install-rpm needs: - job: pkg-fedora-35-amd64 image: registry.nic.cz/labs/bird:fedora-35-amd64 - install-fedora-36-amd64: <<: *install-rpm needs: - job: pkg-fedora-36-amd64 image: registry.nic.cz/labs/bird:fedora-36-amd64 - install-fedora-37-amd64: <<: *install-rpm needs: - job: pkg-fedora-37-amd64 image: registry.nic.cz/labs/bird:fedora-37-amd64 - install-fedora-38-amd64: <<: *install-rpm needs: - job: pkg-fedora-38-amd64 image: registry.nic.cz/labs/bird:fedora-38-amd64 - install-fedora-39-amd64: <<: *install-rpm needs: - job: pkg-fedora-39-amd64 image: registry.nic.cz/labs/bird:fedora-39-amd64 - install-fedora-40-amd64: <<: *install-rpm needs: - job: pkg-fedora-40-amd64 image: registry.nic.cz/labs/bird:fedora-40-amd64 - install-fedora-41-amd64: <<: *install-rpm needs: - job: pkg-fedora-41-amd64 image: registry.nic.cz/labs/bird:fedora-41-amd64 - install-fedora-42-amd64: <<: *install-rpm needs: - job: pkg-fedora-42-amd64 image: registry.nic.cz/labs/bird:fedora-42-amd64 - install-fedora-43-amd64: <<: *install-rpm needs: - job: pkg-fedora-43-amd64 image: registry.nic.cz/labs/bird:fedora-43-amd64 - install-ubuntu-18.04-amd64: <<: *install-deb needs: - job: pkg-ubuntu-18.04-amd64 image: registry.nic.cz/labs/bird:ubuntu-18.04-amd64 - -install-debian-11-i386: +install-ubuntu-20.04-amd64: <<: *install-deb needs: - - job: pkg-debian-11-i386 - image: registry.nic.cz/labs/bird:debian-11-i386 - + - job: pkg-ubuntu-20.04-amd64 + image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64 install-debian-11-amd64: <<: *install-deb needs: - job: pkg-debian-11-amd64 image: registry.nic.cz/labs/bird:debian-11-amd64 - +install-debian-11-i386: + <<: *install-deb + needs: + - job: pkg-debian-11-i386 + image: registry.nic.cz/labs/bird:debian-11-i386 install-debian-12-amd64: <<: *install-deb needs: - job: pkg-debian-12-amd64 image: registry.nic.cz/labs/bird:debian-12-amd64 - install-debian-12-i386: <<: *install-deb needs: - job: pkg-debian-12-i386 image: registry.nic.cz/labs/bird:debian-12-i386 - install-debian-13-amd64: <<: *install-deb needs: - job: pkg-debian-13-amd64 image: registry.nic.cz/labs/bird:debian-13-amd64 - install-debian-13-i386: <<: *install-deb needs: - job: pkg-debian-13-i386 image: registry.nic.cz/labs/bird:debian-13-i386 - install-debian-testing-amd64: <<: *install-deb needs: - job: pkg-debian-testing-amd64 image: registry.nic.cz/labs/bird:debian-testing-amd64 - install-debian-testing-i386: <<: *install-deb needs: - job: pkg-debian-testing-i386 image: registry.nic.cz/labs/bird:debian-testing-i386 - -install-ubuntu-20.04-amd64: - <<: *install-deb - needs: - - job: pkg-ubuntu-20.04-amd64 - image: registry.nic.cz/labs/bird:ubuntu-20.04-amd64 - install-ubuntu-22.04-amd64: <<: *install-deb needs: - job: pkg-ubuntu-22.04-amd64 image: registry.nic.cz/labs/bird:ubuntu-22.04-amd64 - install-ubuntu-24.04-amd64: <<: *install-deb needs: - job: pkg-ubuntu-24.04-amd64 image: registry.nic.cz/labs/bird:ubuntu-24.04-amd64 - install-ubuntu-25.04-amd64: <<: *install-deb needs: - job: pkg-ubuntu-25.04-amd64 image: registry.nic.cz/labs/bird:ubuntu-25.04-amd64 - install-ubuntu-25.10-amd64: <<: *install-deb needs: - job: pkg-ubuntu-25.10-amd64 image: registry.nic.cz/labs/bird:ubuntu-25.10-amd64 +################################### +## DEB Cross-builds by pbuilder ## +################################### + +.crossbuild-deb-image: &crossbuild-deb-image + stage: image + script: + - mkdir -p $PBUILDER_DIR/$IMAGE.cache + - sudo pbuilder create --architecture $ARCH --distribution $CODE --basetgz $PBUILDER_DIR/$IMAGE.tgz --aptcache $PBUILDER_DIR/$IMAGE.cache --autocleanaptcache --extrapackages "bison flex libncurses-dev m4 quilt xsltproc debhelper docbook-xsl" --mirror $MIRROR --components "$COMPONENTS" + tags: + - crossbuilder + rules: + # Never rebuild for WIP commits + - *never-wip + + # Never rebuild for tags + - if: '$CI_COMMIT_TAG' + when: never + + # Never rebuild for new branches + - if: $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000" + when: never + + - if: $CI_COMMIT_MESSAGE =~ /^PBuilder-init[:] all$/m + when: always + + - when: never + +.crossbuild-deb-pkg: &crossbuild-deb-pkg + stage: pkg + script: + - sudo pbuilder build --architecture $ARCH --distribution $CODE --basetgz $PBUILDER_DIR/$IMAGE.tgz --aptcache $PBUILDER_DIR/$IMAGE.cache --autocleanaptcache --buildresult pkg/pkgs/*/*/ --binary-arch pkg/srcpkgs/*/*/*.dsc --debbuildopts "-j4" --mirror $MIRROR --components "$COMPONENTS" + tags: + - crossbuilder + artifacts: + paths: + - pkg/pkgs/*/*/*-cznic*_*.* + + +crossbuild-image-debian-12-arm64: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-12-arm64 + ARCH: arm64 + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-12-arm64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-12-arm64 + optional: true + - job: pkg-debian-12-amd64 + variables: + IMAGE: debian-12-arm64 + ARCH: arm64 + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-12-armel: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-12-armel + ARCH: armel + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-12-armel: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-12-armel + optional: true + - job: pkg-debian-12-amd64 + variables: + IMAGE: debian-12-armel + ARCH: armel + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-12-armhf: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-12-armhf + ARCH: armhf + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-12-armhf: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-12-armhf + optional: true + - job: pkg-debian-12-amd64 + variables: + IMAGE: debian-12-armhf + ARCH: armhf + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-12-mips64el: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-12-mips64el + ARCH: mips64el + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-12-mips64el: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-12-mips64el + optional: true + - job: pkg-debian-12-amd64 + variables: + IMAGE: debian-12-mips64el + ARCH: mips64el + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-12-s390x: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-12-s390x + ARCH: s390x + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-12-s390x: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-12-s390x + optional: true + - job: pkg-debian-12-amd64 + variables: + IMAGE: debian-12-s390x + ARCH: s390x + CODE: bookworm + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-13-arm64: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-13-arm64 + ARCH: arm64 + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-13-arm64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-13-arm64 + optional: true + - job: pkg-debian-13-amd64 + variables: + IMAGE: debian-13-arm64 + ARCH: arm64 + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-13-armel: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-13-armel + ARCH: armel + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-13-armel: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-13-armel + optional: true + - job: pkg-debian-13-amd64 + variables: + IMAGE: debian-13-armel + ARCH: armel + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-13-armhf: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-13-armhf + ARCH: armhf + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-13-armhf: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-13-armhf + optional: true + - job: pkg-debian-13-amd64 + variables: + IMAGE: debian-13-armhf + ARCH: armhf + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-13-riscv64: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-13-riscv64 + ARCH: riscv64 + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-13-riscv64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-13-riscv64 + optional: true + - job: pkg-debian-13-amd64 + variables: + IMAGE: debian-13-riscv64 + ARCH: riscv64 + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-13-s390x: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-13-s390x + ARCH: s390x + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-13-s390x: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-13-s390x + optional: true + - job: pkg-debian-13-amd64 + variables: + IMAGE: debian-13-s390x + ARCH: s390x + CODE: trixie + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-testing-arm64: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-testing-arm64 + ARCH: arm64 + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-testing-arm64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-testing-arm64 + optional: true + - job: pkg-debian-testing-amd64 + variables: + IMAGE: debian-testing-arm64 + ARCH: arm64 + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-testing-armhf: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-testing-armhf + ARCH: armhf + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-testing-armhf: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-testing-armhf + optional: true + - job: pkg-debian-testing-amd64 + variables: + IMAGE: debian-testing-armhf + ARCH: armhf + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-testing-riscv64: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-testing-riscv64 + ARCH: riscv64 + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-testing-riscv64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-testing-riscv64 + optional: true + - job: pkg-debian-testing-amd64 + variables: + IMAGE: debian-testing-riscv64 + ARCH: riscv64 + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-debian-testing-s390x: + <<: *crossbuild-deb-image + variables: + IMAGE: debian-testing-s390x + ARCH: s390x + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-pkg-debian-testing-s390x: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-debian-testing-s390x + optional: true + - job: pkg-debian-testing-amd64 + variables: + IMAGE: debian-testing-s390x + ARCH: s390x + CODE: testing + MIRROR: http://deb.debian.org/debian + COMPONENTS: main + +crossbuild-image-ubuntu-22.04-arm64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-22.04-arm64 + ARCH: arm64 + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-22.04-arm64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-22.04-arm64 + optional: true + - job: pkg-ubuntu-22.04-amd64 + variables: + IMAGE: ubuntu-22.04-arm64 + ARCH: arm64 + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-22.04-armhf: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-22.04-armhf + ARCH: armhf + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-22.04-armhf: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-22.04-armhf + optional: true + - job: pkg-ubuntu-22.04-amd64 + variables: + IMAGE: ubuntu-22.04-armhf + ARCH: armhf + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-22.04-ppc64el: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-22.04-ppc64el + ARCH: ppc64el + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-22.04-ppc64el: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-22.04-ppc64el + optional: true + - job: pkg-ubuntu-22.04-amd64 + variables: + IMAGE: ubuntu-22.04-ppc64el + ARCH: ppc64el + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-22.04-riscv64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-22.04-riscv64 + ARCH: riscv64 + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-22.04-riscv64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-22.04-riscv64 + optional: true + - job: pkg-ubuntu-22.04-amd64 + variables: + IMAGE: ubuntu-22.04-riscv64 + ARCH: riscv64 + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-22.04-s390x: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-22.04-s390x + ARCH: s390x + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-22.04-s390x: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-22.04-s390x + optional: true + - job: pkg-ubuntu-22.04-amd64 + variables: + IMAGE: ubuntu-22.04-s390x + ARCH: s390x + CODE: jammy + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-24.04-arm64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-24.04-arm64 + ARCH: arm64 + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-24.04-arm64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-24.04-arm64 + optional: true + - job: pkg-ubuntu-24.04-amd64 + variables: + IMAGE: ubuntu-24.04-arm64 + ARCH: arm64 + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-24.04-armhf: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-24.04-armhf + ARCH: armhf + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-24.04-armhf: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-24.04-armhf + optional: true + - job: pkg-ubuntu-24.04-amd64 + variables: + IMAGE: ubuntu-24.04-armhf + ARCH: armhf + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-24.04-ppc64el: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-24.04-ppc64el + ARCH: ppc64el + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-24.04-ppc64el: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-24.04-ppc64el + optional: true + - job: pkg-ubuntu-24.04-amd64 + variables: + IMAGE: ubuntu-24.04-ppc64el + ARCH: ppc64el + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-24.04-riscv64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-24.04-riscv64 + ARCH: riscv64 + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-24.04-riscv64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-24.04-riscv64 + optional: true + - job: pkg-ubuntu-24.04-amd64 + variables: + IMAGE: ubuntu-24.04-riscv64 + ARCH: riscv64 + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-24.04-s390x: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-24.04-s390x + ARCH: s390x + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-24.04-s390x: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-24.04-s390x + optional: true + - job: pkg-ubuntu-24.04-amd64 + variables: + IMAGE: ubuntu-24.04-s390x + ARCH: s390x + CODE: noble + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.04-arm64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.04-arm64 + ARCH: arm64 + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.04-arm64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.04-arm64 + optional: true + - job: pkg-ubuntu-25.04-amd64 + variables: + IMAGE: ubuntu-25.04-arm64 + ARCH: arm64 + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.04-armhf: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.04-armhf + ARCH: armhf + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.04-armhf: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.04-armhf + optional: true + - job: pkg-ubuntu-25.04-amd64 + variables: + IMAGE: ubuntu-25.04-armhf + ARCH: armhf + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.04-ppc64el: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.04-ppc64el + ARCH: ppc64el + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.04-ppc64el: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.04-ppc64el + optional: true + - job: pkg-ubuntu-25.04-amd64 + variables: + IMAGE: ubuntu-25.04-ppc64el + ARCH: ppc64el + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.04-riscv64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.04-riscv64 + ARCH: riscv64 + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.04-riscv64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.04-riscv64 + optional: true + - job: pkg-ubuntu-25.04-amd64 + variables: + IMAGE: ubuntu-25.04-riscv64 + ARCH: riscv64 + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.04-s390x: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.04-s390x + ARCH: s390x + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.04-s390x: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.04-s390x + optional: true + - job: pkg-ubuntu-25.04-amd64 + variables: + IMAGE: ubuntu-25.04-s390x + ARCH: s390x + CODE: plucky + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.10-arm64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.10-arm64 + ARCH: arm64 + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.10-arm64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.10-arm64 + optional: true + - job: pkg-ubuntu-25.10-amd64 + variables: + IMAGE: ubuntu-25.10-arm64 + ARCH: arm64 + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.10-armhf: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.10-armhf + ARCH: armhf + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.10-armhf: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.10-armhf + optional: true + - job: pkg-ubuntu-25.10-amd64 + variables: + IMAGE: ubuntu-25.10-armhf + ARCH: armhf + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.10-ppc64el: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.10-ppc64el + ARCH: ppc64el + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.10-ppc64el: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.10-ppc64el + optional: true + - job: pkg-ubuntu-25.10-amd64 + variables: + IMAGE: ubuntu-25.10-ppc64el + ARCH: ppc64el + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.10-riscv64: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.10-riscv64 + ARCH: riscv64 + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.10-riscv64: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.10-riscv64 + optional: true + - job: pkg-ubuntu-25.10-amd64 + variables: + IMAGE: ubuntu-25.10-riscv64 + ARCH: riscv64 + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-image-ubuntu-25.10-s390x: + <<: *crossbuild-deb-image + variables: + IMAGE: ubuntu-25.10-s390x + ARCH: s390x + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + +crossbuild-pkg-ubuntu-25.10-s390x: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-ubuntu-25.10-s390x + optional: true + - job: pkg-ubuntu-25.10-amd64 + variables: + IMAGE: ubuntu-25.10-s390x + ARCH: s390x + CODE: questing + MIRROR: http://ports.ubuntu.com/ubuntu-ports/ + COMPONENTS: main restricted universe multiverse + + + ################################### ## Non-linux build tests in QEMU ## diff --git a/misc/gitlab/data.yml.j2 b/misc/gitlab/data.yml.j2 index 16a76e68d..a83422f28 100644 --- a/misc/gitlab/data.yml.j2 +++ b/misc/gitlab/data.yml.j2 @@ -10,6 +10,7 @@ distros: LC_ALL: en_US.UTF-8 CC: /opt/rh/devtoolset-8/root/usr/bin/gcc type: pkg-rpm-wa + arch: amd64 {% for name in ( 'centos-8', @@ -23,6 +24,7 @@ distros: ) -%} - name: {{ name }}-amd64 type: pkg-rpm-wa + arch: amd64 {% endfor %} # For some unknown reason we also require older Python packages @@ -30,38 +32,67 @@ distros: {% for num in (0,1,2,3,4,5) -%} - name: opensuse-15.{{ num }}-amd64 type: pkg-rpm-wa + arch: amd64 {% endfor %} # Fedora regular builds {% for num in (34, 35, 36, 37, 38, 39, 40, 41, 42, 43) -%} - name: fedora-{{ num }}-amd64 type: pkg-rpm + arch: amd64 {% endfor %} - # Debian-based legacy builds - # Ubuntu 18.04 has issues with newer version of beautifulsoup4 and old python - # Debian 11 has issues with markupsafe v3.0.3 - {% for name in ( - 'ubuntu-18.04-amd64', - 'debian-11-i386', - 'debian-11-amd64', - ) -%} - - name: {{ name }} - type: pkg-deb-legacy + # Old Debian-based builds + {% for distro in ("ubuntu-18.04", "ubuntu-20.04") %} + - name: {{ distro }}-amd64 + type: pkg-deb + arch: amd64 + {% endfor %} + + {% for arch in ('amd64', 'i386') %} + - name: debian-11-{{ arch }} + type: pkg-deb + arch: {{ arch }} {% endfor %} # Debian regular builds - {% for num in (12, 13, 'testing') -%} - {% for arch in ('amd64', 'i386') -%} - - name: debian-{{num}}-{{arch}} + {% for arch in ('amd64', 'i386', 'arm64', 'armel', 'armhf', 'mips64el', 's390x') %} + - name: debian-12-{{ arch }} + code: bookworm type: pkg-deb + arch: {{ arch }} + mirror: "http://deb.debian.org/debian" + components: main {% endfor %} + + {% for arch in ('amd64', 'i386', 'arm64', 'armel', 'armhf', 'riscv64', 's390x') -%} + - name: debian-13-{{ arch }} + code: trixie + type: pkg-deb + arch: {{ arch }} + mirror: "http://deb.debian.org/debian" + components: main + {% endfor %} + + {% for arch in ('amd64', 'i386', 'arm64', 'armhf', 'riscv64', 's390x') -%} + - name: debian-testing-{{arch}} + code: testing + type: pkg-deb + arch: {{ arch }} + mirror: "http://deb.debian.org/debian" + components: main {% endfor %} # Ubuntu regular builds - {% for num in ('20.04', '22.04', '24.04', '25.04', '25.10') -%} - - name: ubuntu-{{ num }}-amd64 + {% for num,code in (('22.04', 'jammy'), ('24.04', 'noble'), ('25.04', 'plucky'), ('25.10', 'questing')) -%} + {% for arch in ('amd64', 'arm64', 'armhf', 'ppc64el', 'riscv64', 's390x') -%} + - name: ubuntu-{{ num }}-{{ arch }} type: pkg-deb + arch: {{ arch }} + code: {{ code }} + mirror: "http://ports.ubuntu.com/ubuntu-ports/" + components: main restricted universe multiverse + {% endfor %} {% endfor %} birdlab: diff --git a/misc/gitlab/template.yml.j2 b/misc/gitlab/template.yml.j2 index d2a12b56b..fdb688b36 100644 --- a/misc/gitlab/template.yml.j2 +++ b/misc/gitlab/template.yml.j2 @@ -1,3 +1,9 @@ +{# + +Do edit this file by hand. The following header will be placed +into .gitlab-ci.yml. + +#} ########################################################### ##### ##### ##### DO NOT EDIT THIS FILE BY HAND ##### @@ -16,6 +22,7 @@ variables: DOCKER_CMD: docker --config="$HOME/.docker/$CI_JOB_ID/" IMG_BASE: registry.nic.cz/labs/bird TOOLS_DIR: /home/gitlab-runner/bird-tools + PBUILDER_DIR: /home/gitlab-runner/pbuilder STAYRTR_BINARY: /usr/local/bin/stayrtr stages: @@ -129,11 +136,13 @@ tag-collect: - when: never -{% for docker in [ { "name": "docbuilder" } ] + distros %} +{% for docker in [ { "name": "docbuilder", "arch": "amd64" } ] + distros %} +{%- if docker.arch in ("amd64", "i386") %} docker-{{ docker["name"] }}: variables: IMG_NAME: "{{ docker["name"] }}" <<: *docker-build +{%- endif -%} {% endfor %} ##################################################### @@ -191,6 +200,7 @@ docker-{{ docker["name"] }}: - amd64 {% for dist in distros %} +{%- if dist.arch in ("amd64", "i386") %} build-{{dist["name"]}}: <<: *build-docker-linux-amd64 needs: @@ -201,6 +211,7 @@ build-{{dist["name"]}}: variables: {{ dist["variables"] | to_yaml | indent(4, true) }} {%- endif %} +{%- endif -%} {% endfor %} ####################################################### @@ -284,6 +295,7 @@ build-release: {% for dist in distros %} +{%- if dist.arch in ("amd64", "i386") %} pkg-{{ dist["name"] }}: <<: *{{ dist["type"] }} needs: @@ -295,6 +307,7 @@ pkg-{{ dist["name"] }}: variables: {{ dist["variables"] | to_yaml | indent(4, true) }} {%- endif %} +{%- endif -%} {% endfor %} ## Package installability checks @@ -346,6 +359,7 @@ pkg-{{ dist["name"] }}: - ./tools/test-install "$CI_COMMIT_MESSAGE" {% for dist in distros %} +{%- if dist.arch in ("amd64", "i386") %} install-{{ dist["name"] }}: <<: *{{ { "pkg-rpm": "install-rpm", @@ -356,8 +370,78 @@ install-{{ dist["name"] }}: needs: - job: pkg-{{ dist["name"] }} image: registry.nic.cz/labs/bird:{{ dist["name"] }} +{%- endif -%} {% endfor %} +################################### +## DEB Cross-builds by pbuilder ## +################################### + +.crossbuild-deb-image: &crossbuild-deb-image + stage: image + script: + - mkdir -p $PBUILDER_DIR/$IMAGE.cache + - sudo pbuilder create --architecture $ARCH --distribution $CODE --basetgz $PBUILDER_DIR/$IMAGE.tgz --aptcache $PBUILDER_DIR/$IMAGE.cache --autocleanaptcache --extrapackages "bison flex libncurses-dev m4 quilt xsltproc debhelper docbook-xsl" --mirror $MIRROR --components "$COMPONENTS" + tags: + - crossbuilder + rules: + # Never rebuild for WIP commits + - *never-wip + + # Never rebuild for tags + - if: '$CI_COMMIT_TAG' + when: never + + # Never rebuild for new branches + - if: $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000" + when: never + + - if: $CI_COMMIT_MESSAGE =~ /^PBuilder-init[:] all$/m + when: always + + - when: never + +.crossbuild-deb-pkg: &crossbuild-deb-pkg + stage: pkg + script: + - sudo pbuilder build --architecture $ARCH --distribution $CODE --basetgz $PBUILDER_DIR/$IMAGE.tgz --aptcache $PBUILDER_DIR/$IMAGE.cache --autocleanaptcache --buildresult pkg/pkgs/*/*/ --binary-arch pkg/srcpkgs/*/*/*.dsc --debbuildopts "-j4" --mirror $MIRROR --components "$COMPONENTS" + tags: + - crossbuilder + artifacts: + paths: + - pkg/pkgs/*/*/*-cznic*_*.* + +{% for dist in distros %} +{%- if dist.arch not in ('amd64', 'i386') %} +crossbuild-image-{{ dist.name }}: + <<: *crossbuild-deb-image + variables: + IMAGE: {{ dist.name }} + ARCH: {{ dist.arch }} + CODE: {{ dist.code }} + MIRROR: {{ dist.mirror }} + COMPONENTS: {{ dist.components }} +{%- if 'variables' in dist %} +{{ dist["variables"] | to_yaml | indent(4, true) }} +{%- endif %} + +crossbuild-pkg-{{ dist.name }}: + <<: *crossbuild-deb-pkg + needs: + - job: crossbuild-image-{{ dist.name }} + optional: true + - job: pkg-{{ dist.name[:-(dist.arch | length)] }}amd64 + variables: + IMAGE: {{ dist.name }} + ARCH: {{ dist.arch }} + CODE: {{ dist.code }} + MIRROR: {{ dist.mirror }} + COMPONENTS: {{ dist.components }} +{% endif -%} +{% endfor %} + + + ################################### ## Non-linux build tests in QEMU ## ################################### -- 2.47.3