fix: ci: Fix .respdiff-recent-named anchor to work when the ABI changes

Previously, on 9.20 and 9.18, both builds (reference and the version
being tested) would use the same .so files which lead to a crash if the
ABI changed.

Use `git worktree` to get completely separate build environment for the
reference version.

This is not a problem on 9.21 as Meson is smart and covers this mistake,
but apply the fix to it as well for consistency.

This also is not a problem on non-MR pipelines: the latest released version
was used as a reference there, so the .so versions would differ.

See the 9.20 pre-backport branch and the jobs:

- Broken: https://gitlab.isc.org/isc-projects/bind9/-/jobs/6951217
- Fixed: https://gitlab.isc.org/isc-projects/bind9/-/jobs/6951220

Merge branch 'stepan/respdiff-fails-on-abi-breakage' into 'main'

See merge request isc-projects/bind9!11616
This commit is contained in:
Štěpán Balážik 2026-03-03 06:50:22 +00:00
commit ee6586b6fe

View file

@ -2176,15 +2176,14 @@ respdiff-third-party:
artifacts: true
script:
- cd ${CI_PROJECT_DIR}
- mkdir version-under-test
- mv build version-under-test/
- BASELINE=${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-$BIND_BASELINE_VERSION}
- git fetch --unshallow origin ${BASELINE}
- git checkout FETCH_HEAD
- git worktree add baseline-build FETCH_HEAD
- cd baseline-build
- *configure
- meson compile -C build
- cd "$CI_PROJECT_DIR"/bind9-qa/respdiff
- bash respdiff.sh -s named -q "${PWD}/100k_mixed.txt" -c 3 -w "${PWD}/rspworkdir" "${CI_PROJECT_DIR}/version-under-test" "${CI_PROJECT_DIR}/build/named"
- bash respdiff.sh -s named -q "${PWD}/100k_mixed.txt" -c 3 -w "${PWD}/rspworkdir" "${CI_PROJECT_DIR}" "${CI_PROJECT_DIR}/baseline-build/build/named"
respdiff:recent-named:
<<: *respdiff_recent_named