diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 514fdced6e..3bd8ecd70d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -338,65 +338,6 @@ stages: sudo sh -x bin/tests/system/ifconfig.sh up; fi -ci-variables: - stage: precheck - <<: *precheck_job - script: - - export BIND_BASELINE_BRANCH="$(sed -n -E "s|^m4_define\(\[bind_VERSION_MINOR\], ([0-9]+)\)dnl$|\1|p" configure.ac)" - # When testing a .0 release, compare it against the previous development - # release (e.g., 9.19.0 and 9.18.0 should both be compared against 9.17.22). - - if [ "$(sed -n -E "s|^m4_define\(\[bind_VERSION_PATCH\], ([0-9]+)\)dnl$|\1|p" configure.ac)" = "0" ]; then export BIND_BASELINE_BRANCH=$((BIND_BASELINE_BRANCH - 1 - (BIND_BASELINE_BRANCH % 2))); fi - - BIND_BASELINE_VERSION="$(curl -s "https://gitlab.isc.org/api/v4/projects/1/repository/tags?search=^v9.${BIND_BASELINE_BRANCH}&order_by=version" | jq -r ".[0].name")" - - echo "BIND_BASELINE_VERSION=$BIND_BASELINE_VERSION" >> ci_vars.env - needs: - - job: autoreconf - artifacts: true - artifacts: - reports: - dotenv: ci_vars.env - -cross-version-config-tests: - stage: system - <<: *base_image - <<: *default_triggering_rules - variables: - CC: gcc - CFLAGS: "${CFLAGS_COMMON}" - # Disable option checking to prevent problems with new default options in - # the &configure anchor. - EXTRA_CONFIGURE: "--disable-option-checking" - script: - - *configure - - *setup_interfaces - - make -j${BUILD_PARALLEL_JOBS:-1} - - 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 - - *configure - - make -j${BUILD_PARALLEL_JOBS:-1} - - *find_pytest - - cd bin/tests/system - # Run the setup phase of all system tests in the most recently tagged BIND 9 - # release using the binaries built for the current BIND 9 version. This - # intends to detect obvious backward compatibility issues with the latter. - - sed -i -E "s|(export TOP_BUILDDIR)=.*|\1=${CI_PROJECT_DIR}|" conf.sh - - > - "$PYTEST" --setup-only --junit-xml="$CI_PROJECT_DIR"/junit.xml -n "${TEST_PARALLEL_JOBS:-1}" - needs: - - job: autoreconf - artifacts: true - - job: ci-variables - artifacts: true - artifacts: - reports: - junit: junit.xml - paths: - - bind-* - - junit.xml - untracked: true - expire_in: "1 day" - when: always - .display_pytest_failures: &display_pytest_failures - awk '/^=+ FAILURES =+/{flag=1;next}/^=+.*=+$/{flag=0}flag' bin/tests/system/pytest.out.txt || true - awk '/^=+ ERRORS =+/{flag=1;next}/^=+.*=+$/{flag=0}flag' bin/tests/system/pytest.out.txt || true @@ -594,6 +535,23 @@ black: expire_in: "1 week" when: on_failure +ci-variables: + stage: precheck + <<: *precheck_job + script: + - export BIND_BASELINE_BRANCH="$(sed -n -E "s|^m4_define\(\[bind_VERSION_MINOR\], ([0-9]+)\)dnl$|\1|p" configure.ac)" + # When testing a .0 release, compare it against the previous development + # release (e.g., 9.19.0 and 9.18.0 should both be compared against 9.17.22). + - if [ "$(sed -n -E "s|^m4_define\(\[bind_VERSION_PATCH\], ([0-9]+)\)dnl$|\1|p" configure.ac)" = "0" ]; then export BIND_BASELINE_BRANCH=$((BIND_BASELINE_BRANCH - 1 - (BIND_BASELINE_BRANCH % 2))); fi + - BIND_BASELINE_VERSION="$(curl -s "https://gitlab.isc.org/api/v4/projects/1/repository/tags?search=^v9.${BIND_BASELINE_BRANCH}&order_by=version" | jq -r ".[0].name")" + - echo "BIND_BASELINE_VERSION=$BIND_BASELINE_VERSION" >> ci_vars.env + needs: + - job: autoreconf + artifacts: true + artifacts: + reports: + dotenv: ci_vars.env + clang-format: <<: *precheck_job needs: [] @@ -704,6 +662,50 @@ docs:tarball: - job: tarball-create artifacts: true +# Job detecting named.conf breakage introduced since the previous point release + +cross-version-config-tests: + stage: system + <<: *base_image + <<: *default_triggering_rules + variables: + CC: gcc + CFLAGS: "${CFLAGS_COMMON}" + # Disable option checking to prevent problems with new default options in + # the &configure anchor. + EXTRA_CONFIGURE: "--disable-option-checking" + script: + - *configure + - *setup_interfaces + - make -j${BUILD_PARALLEL_JOBS:-1} + - 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 + - *configure + - make -j${BUILD_PARALLEL_JOBS:-1} + - *find_pytest + - cd bin/tests/system + # Run the setup phase of all system tests in the most recently tagged BIND 9 + # release using the binaries built for the current BIND 9 version. This + # intends to detect obvious backward compatibility issues with the latter. + - sed -i -E "s|(export TOP_BUILDDIR)=.*|\1=${CI_PROJECT_DIR}|" conf.sh + - > + "$PYTEST" --setup-only --junit-xml="$CI_PROJECT_DIR"/junit.xml -n "${TEST_PARALLEL_JOBS:-1}" + needs: + - job: autoreconf + artifacts: true + - 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.18 (amd64) gcc:alpine3.18:amd64: