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)
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
needs:
- job: autoreconf
artifacts: true
- only:
- - schedules
- - tags
artifacts:
untracked: true
expire_in: "1 day"
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
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
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
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
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
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