From 90ac7debb0c373a3dde72ada0ff6743cc420706d Mon Sep 17 00:00:00 2001 From: Maria Matejka Date: Thu, 24 Apr 2025 20:46:34 +0200 Subject: [PATCH] CI: Packages are built from the single release tgz package --- .gitlab-ci.yml | 172 ++++++++++++++++++++++++++++-------- misc/gitlab/template.yml.j2 | 17 ++-- 2 files changed, 148 insertions(+), 41 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4e1bfb5e6..5da91bf0d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -564,11 +564,12 @@ build-release: # create venv only if it's installed - if python3 -m venv venv; then . venv/bin/activate; fi - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.deb artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* .pkg-deb-legacy: &pkg-deb-legacy <<: *test-job @@ -581,22 +582,24 @@ build-release: # to ancient distros, we need to do this workaround - pip3 install beautifulsoup4==4.11.2 - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.deb artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* .pkg-rpm: &pkg-rpm <<: *test-job stage: pkg script: - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.rpm artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* .pkg-rpm-wa: &pkg-rpm-wa <<: *test-job @@ -606,17 +609,21 @@ build-release: # install older version of bs4 that does not use python version >= 3.6 - pip3 install beautifulsoup4==4.11.2 - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.rpm artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* pkg-centos-7-amd64: <<: *pkg-rpm-wa - needs: [ build-centos-7-amd64 ] + needs: + - job: build-centos-7-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:centos-7-amd64 variables: CC: /opt/rh/devtoolset-8/root/usr/bin/gcc @@ -624,157 +631,250 @@ pkg-centos-7-amd64: pkg-centos-8-amd64: <<: *pkg-rpm-wa - needs: [ build-centos-8-amd64 ] + needs: + - job: build-centos-8-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:centos-8-amd64 pkg-fedora-32-amd64: <<: *pkg-rpm-wa - needs: [ build-fedora-32-amd64 ] + needs: + - job: build-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: [ build-fedora-33-amd64 ] + needs: + - job: build-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: [ build-opensuse-15.0-amd64 ] + needs: + - job: build-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: [ build-opensuse-15.1-amd64 ] + needs: + - job: build-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: [ build-opensuse-15.2-amd64 ] + needs: + - job: build-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: [ build-opensuse-15.3-amd64 ] + needs: + - job: build-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: [ build-opensuse-15.4-amd64 ] + needs: + - job: build-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: [ build-opensuse-15.5-amd64 ] + needs: + - job: build-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: [ build-fedora-34-amd64 ] + needs: + - job: build-fedora-34-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-34-amd64 pkg-fedora-35-amd64: <<: *pkg-rpm - needs: [ build-fedora-35-amd64 ] + needs: + - job: build-fedora-35-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-35-amd64 pkg-fedora-36-amd64: <<: *pkg-rpm - needs: [ build-fedora-36-amd64 ] + needs: + - job: build-fedora-36-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-36-amd64 pkg-fedora-37-amd64: <<: *pkg-rpm - needs: [ build-fedora-37-amd64 ] + needs: + - job: build-fedora-37-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-37-amd64 pkg-fedora-38-amd64: <<: *pkg-rpm - needs: [ build-fedora-38-amd64 ] + needs: + - job: build-fedora-38-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-38-amd64 pkg-fedora-39-amd64: <<: *pkg-rpm - needs: [ build-fedora-39-amd64 ] + needs: + - job: build-fedora-39-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-39-amd64 pkg-fedora-40-amd64: <<: *pkg-rpm - needs: [ build-fedora-40-amd64 ] + needs: + - job: build-fedora-40-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-40-amd64 pkg-fedora-41-amd64: <<: *pkg-rpm - needs: [ build-fedora-41-amd64 ] + needs: + - job: build-fedora-41-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-41-amd64 pkg-fedora-42-amd64: <<: *pkg-rpm - needs: [ build-fedora-42-amd64 ] + needs: + - job: build-fedora-42-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:fedora-42-amd64 pkg-ubuntu-18.04-amd64: <<: *pkg-deb-legacy - needs: [ build-ubuntu-18.04-amd64 ] + needs: + - job: build-ubuntu-18.04-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:ubuntu-18.04-amd64 pkg-debian-10-amd64: <<: *pkg-deb - needs: [ build-debian-10-amd64 ] + needs: + - job: build-debian-10-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:debian-10-amd64 pkg-debian-10-i386: <<: *pkg-deb - needs: [ build-debian-10-i386 ] + needs: + - job: build-debian-10-i386 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:debian-10-i386 pkg-debian-11-amd64: <<: *pkg-deb - needs: [ build-debian-11-amd64 ] + 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: [ build-debian-11-i386 ] + 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: [ build-debian-12-amd64 ] + needs: + - job: build-debian-12-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:debian-12-amd64 pkg-debian-12-i386: <<: *pkg-deb - needs: [ build-debian-12-i386 ] + needs: + - job: build-debian-12-i386 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:debian-12-i386 pkg-debian-testing-amd64: <<: *pkg-deb - needs: [ build-debian-testing-amd64 ] + needs: + - job: build-debian-testing-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:debian-testing-amd64 pkg-debian-testing-i386: <<: *pkg-deb - needs: [ build-debian-testing-i386 ] + needs: + - job: build-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: [ build-ubuntu-20.04-amd64 ] + 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: [ build-ubuntu-22.04-amd64 ] + needs: + - job: build-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: [ build-ubuntu-24.04-amd64 ] + needs: + - job: build-ubuntu-24.04-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:ubuntu-24.04-amd64 pkg-ubuntu-24.10-amd64: <<: *pkg-deb - needs: [ build-ubuntu-24.10-amd64 ] + needs: + - job: build-ubuntu-24.10-amd64 + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:ubuntu-24.10-amd64 diff --git a/misc/gitlab/template.yml.j2 b/misc/gitlab/template.yml.j2 index b6c77c6a1..db80aa089 100644 --- a/misc/gitlab/template.yml.j2 +++ b/misc/gitlab/template.yml.j2 @@ -188,11 +188,12 @@ build-release: # create venv only if it's installed - if python3 -m venv venv; then . venv/bin/activate; fi - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.deb artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* .pkg-deb-legacy: &pkg-deb-legacy <<: *test-job @@ -205,22 +206,24 @@ build-release: # to ancient distros, we need to do this workaround - pip3 install beautifulsoup4==4.11.2 - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.deb artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* .pkg-rpm: &pkg-rpm <<: *test-job stage: pkg script: - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.rpm artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* .pkg-rpm-wa: &pkg-rpm-wa <<: *test-job @@ -230,17 +233,21 @@ build-release: # install older version of bs4 that does not use python version >= 3.6 - pip3 install beautifulsoup4==4.11.2 - pip3 install apkg - - BRANCH=$CI_COMMIT_BRANCH ARCHIVE_DOCS=false apkg build + - apkg build -a bird-$(cat VERSION)*.tar.gz #- apkg install -y pkg/pkgs/*/*/*.rpm artifacts: paths: - pkg/pkgs/* + - pkg/srcpkgs/* {% for dist in distros %} pkg-{{ dist["name"] }}: <<: *{{ dist["type"] }} - needs: [ build-{{ dist["name"] }} ] + needs: + - job: build-{{ dist["name"] }} + artifacts: false + - job: build-release image: registry.nic.cz/labs/bird:{{ dist["name"] }} {%- if 'variables' in dist %} variables: -- 2.47.3