- ${MESON_TEST} --suite unit --suite config --no-suite snowflake --wrap="valgrind --leak-check=full --trace-children=yes --quiet --suppressions=/lj.supp"
- MESON_TESTTHREADS=1 ${MESON_TEST} --wrap="valgrind --leak-check=full --trace-children=yes --quiet --suppressions=/lj.supp" --suite snowflake
-pkgtest:
- stage: test
- trigger:
- include: ci/pkgtest.yaml
- strategy: depend
- needs:
- - build
- variables: # https://gitlab.nic.cz/help/ci/yaml/README.md#artifact-downloads-to-child-pipelines
- PARENT_PIPELINE_ID: $CI_PIPELINE_ID
- except:
- refs:
- - master@knot/knot-resolver
- - master@knot/security/knot-resolver
- - tags
- variables:
- - $SKIP_CI == "1"
-
manager:
stage: test
needs: []
OBS_REPO: knot-resolver-odvr
when: manual
# }}}
-
-# pkgtest {{{
-.deploytest: &deploytest
- stage: pkgtest
- only:
- variables:
- - $OBS_REPO =~ /^knot-resolver-devel|knot-dns-devel|knot-resolver-testing$/
- - $CI_COMMIT_TAG
- dependencies: [] # wait for previous stages to finish
- variables:
- OBS_REPO: knot-resolver-latest
- when: delayed
- start_in: 3 minutes # give OBS build some time
- tags:
- - condor
-
-obs:build:all:
- <<: *deploytest
- only:
- variables:
- - $OBS_REPO =~ /^knot-resolver-devel|knot-dns-devel|knot-resolver-testing|knot-resolver-odvr$/
- - $CI_COMMIT_TAG
- allow_failure: true
- script:
- - "osc results home:CZ-NIC:$OBS_REPO knot-resolver -w"
- - version=$(sed 's/^v//' <(git describe --exact-match HEAD || git rev-parse --short HEAD) )
- - > # check version only for one (reliable) repo to avoid false negatives
- ! osc ls -b home:CZ-NIC:$OBS_REPO knot-resolver Debian_9.0 x86_64 | \
- grep -E '(rpm|deb|tar\.xz)$' | grep -v $version || \
- (echo "ERROR: version mismatch"; exit 1)
- - >
- ! osc results home:CZ-NIC:$OBS_REPO knot-resolver --csv | \
- grep -Ev 'disabled|excluded|Rawhide|CentOS_8_EPEL' | grep -v 'succeeded' -q || \
- (echo "ERROR: build(s) failed"; exit 1)
-
-.distrotest: &distrotest
- <<: *deploytest
- # Description of the distrotest script workflow:
- # 1. wait for OBS package build to complete
- # 2. check the OBS build suceeded
- # 3. set up some variables, dir names etc.
- # 4. create a symlink with predictable name to export artifacts afterwards
- # 5. create an HTCondor job and submit it to a HTCondor cluster
- # 6. check exit code from condor, optionally display one of the logs and end the job with same exit code
- script:
- - "osc results home:CZ-NIC:$OBS_REPO knot-resolver -a x86_64 -r $DISTROTEST_REPO -w"
- - >
- osc results home:CZ-NIC:$OBS_REPO knot-resolver -a x86_64 -r $DISTROTEST_REPO --csv | grep 'succeeded|$' -q || \
- (echo "ERROR: build failed"; exit 1)
- - export LABEL="gl$(date +%s)_$OBS_REPO"
- - export COMMITDIR="/var/tmp/respdiff-jobs/$(git rev-parse --short HEAD)-$LABEL"
- - export TESTDIR="$COMMITDIR/distrotest.$DISTROTEST_NAME"
- - ln -s $COMMITDIR distrotest_commitdir
- - sudo -u respdiff /var/opt/respdiff/contrib/job_manager/submit.py -w
- -p $DISTROTEST_PRIORITY
- $(sudo -u respdiff /var/opt/respdiff/contrib/job_manager/create.py
- "$(git rev-parse --short HEAD)" -l $LABEL -t distrotest.$DISTROTEST_NAME
- --obs-repo $OBS_REPO)
- - export EXITCODE=$(cat $TESTDIR/j*_exitcode)
- - if [[ "$EXITCODE" != "0" ]]; then cat $TESTDIR/j*_{vagrant.log.txt,stdout.txt}; fi
- - exit $EXITCODE
- after_script:
- - 'cp -t . distrotest_commitdir/distrotest.$DISTROTEST_NAME/j* ||:'
- artifacts:
- when: always
- expire_in: 1 week
- paths:
- - ./j*
- retry:
- max: 1
- when:
- - script_failure
-
-obs:rocky8:x86_64:
- <<: *distrotest
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: rocky8
- DISTROTEST_REPO: CentOS_8_EPEL
-
-obs:debian9:x86_64:
- <<: *distrotest
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: debian9
- DISTROTEST_REPO: Debian_9.0
-
-obs:debian10:x86_64:
- <<: *distrotest
- only:
- variables:
- - $OBS_REPO =~ /^knot-resolver-devel|knot-dns-devel|knot-resolver-testing|knot-resolver-odvr$/
- - $CI_COMMIT_TAG
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: debian10
- DISTROTEST_REPO: Debian_10
-
-obs:debian11:x86_64:
- <<: *distrotest
- only:
- variables:
- - $OBS_REPO =~ /^knot-resolver-devel|knot-dns-devel|knot-resolver-testing|knot-resolver-odvr$/
- - $CI_COMMIT_TAG
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: debian11
- DISTROTEST_REPO: Debian_11
-
-obs:fedora35:x86_64:
- <<: *distrotest
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: fedora35
- DISTROTEST_REPO: Fedora_35
-
-obs:fedora36:x86_64:
- <<: *distrotest
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: fedora36
- DISTROTEST_REPO: Fedora_36
-
-obs:leap15:x86_64:
- <<: *distrotest
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: leap15
- DISTROTEST_REPO: openSUSE_Leap_15.3
-
-obs:ubuntu1804:x86_64:
- <<: *distrotest
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: ubuntu1804
- DISTROTEST_REPO: xUbuntu_18.04
-
-obs:ubuntu2004:x86_64:
- <<: *distrotest
- only:
- variables:
- - $OBS_REPO =~ /^knot-resolver-devel|knot-dns-devel|knot-resolver-testing|knot-resolver-odvr$/
- - $CI_COMMIT_TAG
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: ubuntu2004
- DISTROTEST_REPO: xUbuntu_20.04
-
-obs:ubuntu2204:x86_64:
- <<: *distrotest
- variables:
- OBS_REPO: knot-resolver-latest
- DISTROTEST_NAME: ubuntu2204
- DISTROTEST_REPO: xUbuntu_22.04
-
-# }}}