]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
reintroduce cross version config tests
authorAydın Mercan <aydin@isc.org>
Tue, 29 Jul 2025 12:48:46 +0000 (12:48 +0000)
committerAydın Mercan <aydin@isc.org>
Thu, 31 Jul 2025 11:17:14 +0000 (14:17 +0300)
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

index 0f801b2cef2dda9adbd747756d5b65af26e7bee1..d334ae1ae5b978bdaafd0f861e10722fd477a25e 100644 (file)
@@ -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)