From: Tomas Krizek Date: Tue, 1 Jun 2021 13:31:30 +0000 (+0200) Subject: ci: split pkgtest into separate child pipeline X-Git-Tag: v5.4.0~16^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12a067f7cc63ac9c0e350c8622c7df2ee3fff833;p=thirdparty%2Fknot-resolver.git ci: split pkgtest into separate child pipeline --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7b2bdb021..bdb00245b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,9 +23,8 @@ stages: - sanity - test - respdiff - - resperf + - extended - deploy - - pkgbuild - pkgtest .common: &common @@ -393,12 +392,9 @@ fwd-udp6-unbound.tls6: variables: RESPDIFF_TEST: shortlist.fwd-udp6-unbound.tls6 -# }}} - -# resperf {{{ .resperf: &resperf <<: *condor - stage: resperf + stage: respdiff script: - git diff-index --name-only origin/master | grep -qEv '^(AUTHORS|ci/|config.mk|COPYING|distro/|doc/|etc/|NEWS|README.md|scripts/|tests/|\.gitignore|\.gitlab-ci\.yml|\.travis\.yml)' || test $RESPERF_FORCE -gt 0 || exit 0 - export LABEL=gl$(date +%s) @@ -436,6 +432,23 @@ rp:iter.udp-asan: RESPERF_TEST: resperf.iter.udp # }}} +# extended {{{ +pkgtest: + stage: extended + trigger: + include: ci/pkgtest.yaml + strategy: depend + needs: + - build + except: + refs: + - master@knot/knot-resolver + - master@knot/security/knot-resolver + - tags + variables: + - $SKIP_CI == "1" +# }}} + # deploy {{{ # copy snapshot of current master to nightly branch for further processing # (this is workaround for missing complex conditions for job limits in Gitlab) @@ -496,128 +509,6 @@ obs:odvr: when: manual # }}} -# pkgbuild {{{ -.pkgbuild: &pkgbuild - <<: *common - stage: pkgbuild - tags: - - lxc - - amd64 - needs: - - build - before_script: - - git config --global user.name CI - - git config --global user.email ci@nic - artifacts: - when: always - expire_in: '1 day' - paths: - - pkg/ - -.apkgbuild: &apkgbuild - - pip3 install -U apkg - - apkg build-dep -y - - apkg build - -.pkgbuilddebrepo: &pkgbuilddebrepo - - apt-get update - - apt-get install -y curl gnupg2 python3-pip devscripts - - echo "deb http://download.opensuse.org/repositories/home:/CZ-NIC:/$OBS_REPO/$DISTROTEST_REPO/ /" > /etc/apt/sources.list.d/obs.list - - curl -fsSL "https://download.opensuse.org/repositories/home:CZ-NIC:$OBS_REPO/$DISTROTEST_REPO/Release.key" | gpg --dearmor > /etc/apt/trusted.gpg.d/obs.gpg - - apt-get update - -fedora-33:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-33 - script: - - dnf install -y rpm-build python3-pip - - *apkgbuild - -fedora-34:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 - script: - - dnf install -y rpm-build python3-pip - - *apkgbuild - -centos-7:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/centos-7 - variables: - LC_ALL: en_US.utf8 - script: - - yum install -y rpm-build python3-pip epel-release - - *apkgbuild - -centos-8:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/centos-8 - script: - - dnf install -y rpm-build python3-pip epel-release - - sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo - - sed -i 's/enabled=0/enabled=1/' /etc/yum.repos.d/CentOS-Linux-Devel.repo - - *apkgbuild - -opensuse-15.2:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/opensuse-15.2 - script: - - zypper addrepo -G -f https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-build/openSUSE_Leap_15.2/home:CZ-NIC:knot-resolver-build.repo - - zypper install -y rpm-build python3-pip - - *apkgbuild - -ubuntu-18.04:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-18.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_18.04 - script: - - *pkgbuilddebrepo - - *apkgbuild - -ubuntu-20.04:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-20.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_20.04 - script: - - *pkgbuilddebrepo - - *apkgbuild - -ubuntu-21.04:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-21.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_21.04 - script: - - *pkgbuilddebrepo - - *apkgbuild - -debian-9:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-9 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_9.0 - script: - - *pkgbuilddebrepo - - *apkgbuild - -debian-10:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-10 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_10 - script: - - *pkgbuilddebrepo - - *apkgbuild - -# }}} - # pkgtest {{{ .deploytest: &deploytest stage: pkgtest @@ -799,16 +690,4 @@ packaging:leap_15.2: variables: DISTRO: leap_15.2 -fedora-34:pkgtest: - <<: *common - stage: pkgtest - tags: - - lxc - - amd64 - needs: - - fedora-34:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 - script: - - dnf install $(ls pkg/pkgs/fedora-34/) - - systemctl start kresd@1 # }}} diff --git a/ci/pkgtest.yaml b/ci/pkgtest.yaml new file mode 100644 index 000000000..a514453ae --- /dev/null +++ b/ci/pkgtest.yaml @@ -0,0 +1,272 @@ +stages: + - pkgbuild + - pkgtest + +# pkgbuild {{{ +.pkgbuild: &pkgbuild + stage: pkgbuild + tags: + - lxc + - amd64 + before_script: + - git config --global user.name CI + - git config --global user.email ci@nic + artifacts: + when: always + expire_in: '1 day' + paths: + - pkg/ + +.apkgbuild: &apkgbuild + - pip3 install -U apkg + - apkg build-dep -y + - apkg build + +.pkgdebrepo: &pkgdebrepo + - apt-get update + - apt-get install -y curl gnupg2 + - echo "deb http://download.opensuse.org/repositories/home:/CZ-NIC:/$OBS_REPO/$DISTROTEST_REPO/ /" > /etc/apt/sources.list.d/obs.list + - curl -fsSL "https://download.opensuse.org/repositories/home:CZ-NIC:$OBS_REPO/$DISTROTEST_REPO/Release.key" | gpg --dearmor > /etc/apt/trusted.gpg.d/obs.gpg + - apt-get update + +.debpkgbuild: &debpkgbuild + - *pkgdebrepo + - apt-get install -y python3-pip devscripts + - *apkgbuild + +centos-7:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/centos-7 + before_script: + - export LC_ALL=en_US.UTF-8 + - git config --global user.name CI + - git config --global user.email ci@nic + script: + - yum install -y rpm-build python3-pip epel-release + - *apkgbuild + +debian-9:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-9 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: Debian_9.0 + script: + - *debpkgbuild + +debian-10:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-10 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: Debian_10 + script: + - *debpkgbuild + +debian-11:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-11 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: Debian_11 + script: + - *debpkgbuild + +fedora-33:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-33 + script: + - dnf install -y rpm-build python3-pip + - *apkgbuild + +fedora-34:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 + script: + - dnf install -y rpm-build python3-pip + - *apkgbuild + +opensuse-15.2:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/opensuse-15.2 + script: + - zypper addrepo -G -f https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-build/openSUSE_Leap_15.2/home:CZ-NIC:knot-resolver-build.repo + - zypper install -y rpm-build python3-pip + - *apkgbuild + +opensuse-15.3:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/opensuse-15.3 + script: + - zypper addrepo -G -f https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-build/openSUSE_Leap_15.3/home:CZ-NIC:knot-resolver-build.repo + - zypper install -y rpm-build python3-pip + - *apkgbuild + +ubuntu-18.04:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-18.04 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: xUbuntu_18.04 + script: + - *debpkgbuild + +ubuntu-20.04:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-20.04 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: xUbuntu_20.04 + script: + - *debpkgbuild + +ubuntu-21.04:pkgbuild: + <<: *pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-21.04 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: xUbuntu_21.04 + script: + - *debpkgbuild +# }}} + +# pkgtest {{{ +.pkgtest: &pkgtest + stage: pkgtest + tags: + - lxc + - amd64 + +.debpkgtest: &debpkgtest + - *pkgdebrepo + - apt-get install -y knot-dnsutils + - apt-get install -y $(find ./pkg/pkgs -name '*.deb' | grep -v module) + - systemctl start kresd@1 + - kdig @127.0.0.1 nic.cz | grep -qi NOERROR + +centos-7:pkgtest: + <<: *pkgtest + needs: + - centos-7:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/centos-7 + before_script: + - export LC_ALL=en_US.UTF-8 + script: + - yum install -y epel-release + - yum install -y knot-utils findutils + - yum install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module) + - systemctl start kresd@1 + - kdig @127.0.0.1 nic.cz | grep -qi NOERROR + +debian-9:pkgtest: + <<: *pkgtest + needs: + - debian-9:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-9 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: Debian_9.0 + script: + - *debpkgtest + +debian-10:pkgtest: + <<: *pkgtest + needs: + - debian-10:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-10 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: Debian_10 + script: + - *debpkgtest + +debian-11:pkgtest: + <<: *pkgtest + needs: + - debian-11:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-11 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: Debian_11 + script: + - *debpkgtest + +fedora-33:pkgtest: + <<: *pkgtest + needs: + - fedora-33:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-33 + script: + - dnf install -y knot-utils findutils + - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module) + - systemctl start kresd@1 + - kdig @127.0.0.1 nic.cz | grep -qi NOERROR + +fedora-34:pkgtest: + <<: *pkgtest + needs: + - fedora-34:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 + script: + - dnf install -y knot-utils findutils + - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module) + - systemctl start kresd@1 + - kdig @127.0.0.1 nic.cz | grep -qi NOERROR + +opensuse-15.2:pkgtest: + <<: *pkgtest + needs: + - opensuse-15.2:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/opensuse-15.2 + script: + - zypper addrepo -G -f https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-build/openSUSE_Leap_15.2/home:CZ-NIC:knot-resolver-build.repo + - zypper install -y knot-utils + - zypper install --allow-unsigned-rpm -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module) + - systemctl start kresd@1 + - kdig @127.0.0.1 nic.cz | grep -qi NOERROR + +opensuse-15.3:pkgtest: + <<: *pkgtest + needs: + - opensuse-15.3:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/opensuse-15.3 + script: + - zypper addrepo -G -f https://download.opensuse.org/repositories/home:CZ-NIC:knot-resolver-build/openSUSE_Leap_15.3/home:CZ-NIC:knot-resolver-build.repo + - zypper install -y knot-utils + - zypper install --allow-unsigned-rpm -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module) + - systemctl start kresd@1 + - kdig @127.0.0.1 nic.cz | grep -qi NOERROR + +ubuntu-18.04:pkgtest: + <<: *pkgtest + needs: + - ubuntu-18.04:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-18.04 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: xUbuntu_18.04 + script: + - *debpkgtest + +ubuntu-20.04:pkgtest: + <<: *pkgtest + needs: + - ubuntu-20.04:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-20.04 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: xUbuntu_20.04 + script: + - *debpkgtest + +ubuntu-21.04:pkgtest: + <<: *pkgtest + needs: + - ubuntu-21.04:pkgbuild + image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-21.04 + variables: + OBS_REPO: knot-resolver-build + DISTROTEST_REPO: xUbuntu_21.04 + script: + - *debpkgtest +# }}}