From: Michał Kępień Date: Mon, 23 Nov 2020 10:46:50 +0000 (+0100) Subject: Enable "stress" tests to be run on demand X-Git-Tag: v9.11.26~15^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=7408ab8d1e95fe308a1c6048c5976b4f8dec5c3b;p=thirdparty%2Fbind9.git Enable "stress" tests to be run on demand The "stress" test can be run in different ways, depending on: - the tested scenario (authoritative, recursive), - the operating system used (Linux, FreeBSD), - the architecture used (amd64, arm64). Currently, all supported "stress" test variants are automatically launched for all scheduled pipelines and for pipelines started for tags; there is no possibility of running these tests on demand, which could be useful in certain circumstances. Employ the "only:variables" key to enable fine-grained control over the list of "stress" test jobs to be run for a given pipeline. Three CI variables are used to specify the list of "stress" test jobs to create: - BIND_STRESS_TEST_MODE: specifies the test mode to use; must be explicitly set in order for any "stress" test job to be created; allowed values are: "authoritative", "recursive", - BIND_STRESS_TEST_OS: specifies the operating system to run the test on; allowed values are: "linux", "freebsd"; defaults to "linux", may be overridden at pipeline creation time, - BIND_STRESS_TEST_ARCH: specifies the architecture to run the test on; allowed values are: "amd64", "arm64"; defaults to "amd64", may be overridden at pipeline creation time. Since case-insensitive regular expressions are used for determining which jobs to run, every variable described above may contain multiple values. For example, setting the BIND_STRESS_TEST_MODE variable to "authoritative,recursive" will cause the "stress" test to be run in both supported scenarios (either on the default OS/architecture combination, i.e. Linux/amd64, or, if the relevant variables are explicitly specified, the requested OS/architecture combinations). (cherry picked from commit f23094223e61908012204cde59ee72102b0b74ae) --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1101ef71e27..4311a7231be 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,6 +32,10 @@ variables: BIND_INSTALL_PATH: "${CI_PROJECT_DIR}/.local" + # Default platforms to run "stress" tests on + BIND_STRESS_TEST_OS: linux + BIND_STRESS_TEST_ARCH: amd64 + stages: - precheck - build @@ -1427,9 +1431,6 @@ respdiff: needs: - job: autoreconf artifacts: true - only: - - schedules - - tags artifacts: untracked: true expire_in: "1 day" @@ -1446,6 +1447,9 @@ stress:authoritative:fedora:33:amd64: MODE: authoritative RATE: 10000 RUN_TIME: 1 + only: + variables: + - $CI_COMMIT_TAG || ($BIND_STRESS_TEST_OS =~ /linux/i && $BIND_STRESS_TEST_MODE =~ /authoritative/i && $BIND_STRESS_TEST_ARCH =~ /amd64/i) stress:recursive:fedora:33:amd64: <<: *fedora_33_amd64_image @@ -1457,6 +1461,9 @@ stress:recursive:fedora:33:amd64: MODE: recursive RATE: 10000 RUN_TIME: 1 + only: + variables: + - $CI_COMMIT_TAG || ($BIND_STRESS_TEST_OS =~ /linux/i && $BIND_STRESS_TEST_MODE =~ /recursive/i && $BIND_STRESS_TEST_ARCH =~ /amd64/i) stress:authoritative:fedora:33:arm64: <<: *fedora_33_arm64_image @@ -1468,6 +1475,9 @@ stress:authoritative:fedora:33:arm64: MODE: authoritative RATE: 10000 RUN_TIME: 1 + only: + variables: + - $CI_COMMIT_TAG || ($BIND_STRESS_TEST_OS =~ /linux/i && $BIND_STRESS_TEST_MODE =~ /authoritative/i && $BIND_STRESS_TEST_ARCH =~ /arm64/i) stress:recursive:fedora:33:arm64: <<: *fedora_33_arm64_image @@ -1479,8 +1489,11 @@ stress:recursive:fedora:33:arm64: MODE: recursive RATE: 10000 RUN_TIME: 1 + only: + variables: + - $CI_COMMIT_TAG || ($BIND_STRESS_TEST_OS =~ /linux/i && $BIND_STRESS_TEST_MODE =~ /recursive/i && $BIND_STRESS_TEST_ARCH =~ /arm64/i) -stress:authoritative:freebsd12: +stress:authoritative:freebsd12:amd64: <<: *freebsd_12_amd64_image <<: *freebsd_stress_amd64 <<: *stress_job @@ -1490,10 +1503,13 @@ stress:authoritative:freebsd12: MODE: authoritative RATE: 10000 RUN_TIME: 1 + only: + variables: + - $CI_COMMIT_TAG || ($BIND_STRESS_TEST_OS =~ /freebsd/i && $BIND_STRESS_TEST_MODE =~ /authoritative/i && $BIND_STRESS_TEST_ARCH =~ /amd64/i) # See: https://gitlab.isc.org/isc-projects/bind9/-/issues/1941 allow_failure: true -stress:recursive:freebsd12: +stress:recursive:freebsd12:amd64: <<: *freebsd_12_amd64_image <<: *freebsd_stress_amd64 <<: *stress_job @@ -1503,6 +1519,9 @@ stress:recursive:freebsd12: MODE: recursive RATE: 10000 RUN_TIME: 1 + only: + variables: + - $CI_COMMIT_TAG || ($BIND_STRESS_TEST_OS =~ /freebsd/i && $BIND_STRESS_TEST_MODE =~ /recursive/i && $BIND_STRESS_TEST_ARCH =~ /amd64/i) # See: https://gitlab.isc.org/isc-projects/bind9/-/issues/1941 allow_failure: true