[9.16] Cross-version testing with named configurations

Michal Nowak requested to merge mnowak/cross-version-test-9.16 into bind-9.16

In #3381 (closed) (and #3385 (closed)), we committed a backward-incompatible change to BIND 9.19.5, 9.18.7, and 9.16.33, explicitly requiring "inline-signing" for every "dnssec-policy".

We did this backward-incompatible change deliberately, knowing the consequences for users and their configurations. But if we didn't, say, we were unaware this is a backward-incompatible change and fixed failing systems test by "tweaking a knob to make the CI pass", we would not have a second look before the change hits user configurations.

"cross-version-config-tests" CI job is such a second look. It will run system tests from the latest release tag specific to the particular branch (e.g., v9.19.12 for the "main" branch) with BIND 9 binaries from the current "HEAD" (the future v9.19.13). This Frankenstein build gets conceived by altering the "TOP_BUILDDIR" variable in "bin/tests/system/conf.sh".

Caveats:

  • Only system test configurations are tested; no actual test code is run.
  • Problems with namedN.conf configurations are not identified.

When backward-incompatible change is introduced, the CI job is expected to fail. If the change is deliberate, the job will keep failing until the version with the backward-incompatible change is tagged, and the minor version in configure.ac is bumped.

(cherry picked from commit cc54211b)

Backport of MR !7863 (merged)

Merge request reports