From 0b309a829c2d94bf6313a36d8d02e74aa785dfc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ayd=C4=B1n=20Mercan?= Date: Tue, 29 Jul 2025 12:48:46 +0000 Subject: [PATCH] reintroduce cross version config tests The `cross-version-config-tests` CI job had to be removed due to radical differences between meson and autoconf. With the release of 9.21.11 this job now can be reintroduced by comparing two meson built BIND source trees. --- .gitlab-ci.yml | 72 +++++++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 30 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0f801b2cef..d334ae1ae5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -795,36 +795,48 @@ docs:tarball: # Job detecting named.conf breakage introduced since the previous point release -# TODO: add when more meson versions are released -# cross-version-config-tests: -# stage: system -# <<: *base_image -# <<: *default_triggering_rules -# variables: -# CC: gcc -# CFLAGS: "${CFLAGS_COMMON}" -# AUTOCONF_CONFIGURE: "--disable-maintainer-mode --enable-developer --enable-leak-detection --enable-option-checking=fatal --disable-option-checking --with-cmocka" -# script: -# - *configure -# - *setup_interfaces -# - meson compile -C build system-test-init system-test-dependencies -# - meson compile -C build -# - *find_pytest -# - git clone --branch "${BIND_BASELINE_VERSION}" --depth 1 https://gitlab.isc.org/isc-projects/bind9.git "bind-${BIND_BASELINE_VERSION}" -# - cd "bind-${BIND_BASELINE_VERSION}" -# - autoreconf -fi -# needs: -# - job: ci-variables -# artifacts: true -# artifacts: -# reports: -# junit: junit.xml -# paths: -# - bind-* -# - junit.xml -# untracked: true -# expire_in: "1 day" -# when: always +cross-version-config-tests: + stage: system + <<: *base_image + <<: *default_triggering_rules + variables: + CC: gcc + CFLAGS: "${CFLAGS_COMMON}" + script: + - *configure + - *setup_interfaces + - meson compile -C build system-test-init system-test-dependencies + - meson compile -C build + - *find_pytest + - git clone --branch "${BIND_BASELINE_VERSION}" --depth 1 https://gitlab.isc.org/isc-projects/bind9.git "bind-${BIND_BASELINE_VERSION}" + - cd "bind-${BIND_BASELINE_VERSION}" + # The cross-version-config-tests job would fail when a system test is + # removed from the upcoming release. To avoid this, remove the system test + # also from the $BIND_BASELINE_VERSION. + - find bin/tests/system/ -mindepth 1 -maxdepth 1 -type d -exec sh -c 'test -e ../"$0" || rm -rfv -- "$0"' {} \; + # @DYLIB@ is missing + - cp ../bin/tests/system/isctest/vars/basic.py ./bin/tests/system/isctest/vars/basic.py + - cp ../bin/tests/system/isctest/vars/.build_vars/TOP_BUILDDIR ./bin/tests/system/isctest/vars/.build_vars/TOP_BUILDDIR + - echo "${CI_PROJECT_DIR}/bind-${BIND_BASELINE_VERSION}" > ../build/bin/tests/system/isctest/vars/.build_vars/TOP_SRCDIR + - cd ./bin/tests/system + # System tests that employ binary drivers will fail on ABI change and + # should not be run. + - rm -r dlzexternal + - rm -r dyndb + - > + "$PYTEST" --setup-only --junit-xml="$CI_PROJECT_DIR"/junit.xml -n "${TEST_PARALLEL_JOBS:-1}" + needs: + - job: ci-variables + artifacts: true + artifacts: + reports: + junit: junit.xml + paths: + - bind-* + - junit.xml + untracked: true + expire_in: "1 day" + when: always # Jobs for regular GCC builds on Alpine Linux 3.22 (amd64)