Rename the "precheck" stage in CI to "quick-checks"

Most jobs in the "precheck" stage spend more time setting up their
environment than running the script (seconds), this allows us to add a
small always on dedicated runner instead of the autoscaled ones.

Hence, the stage is renamed to "quick-checks", and a tag "smalljob" is
added to the anchor so that these jobs are picked by the dedicated
runner.

(cherry picked from commit 9aa5041a88)
This commit is contained in:
Andoni Duarte Pintado 2025-12-15 13:08:44 +01:00 committed by Michał Kępień
parent 26557d3ed3
commit 1eeeb0dff4
No known key found for this signature in database

View file

@ -101,7 +101,7 @@ default:
stages:
- autoconf
- precheck
- quick-checks
- build
- unit
- system
@ -328,10 +328,12 @@ stages:
- *rule_source_other_than_mr
- *rule_mr_system_tests
.precheck: &precheck_job
.quick-check: &quick_checks_job
<<: *default_triggering_rules
<<: *base_image
stage: precheck
stage: quick-checks
tags:
- smalljob
.autoconf: &autoconf_job
<<: *default_triggering_rules
@ -621,13 +623,13 @@ stages:
### Job Definitions
# Jobs in the precheck stage
# Jobs in the quick-checks stage
autoreconf:
<<: *autoconf_job
misc:
<<: *precheck_job
<<: *quick_checks_job
script:
- sh util/checklibs.sh > checklibs.out
- sh util/check-categories.sh
@ -645,7 +647,7 @@ misc:
when: on_failure
black:
<<: *precheck_job
<<: *quick_checks_job
<<: *python_triggering_rules
needs: []
script:
@ -659,14 +661,14 @@ black:
when: on_failure
vulture:
<<: *precheck_job
<<: *quick_checks_job
<<: *python_triggering_rules
needs: []
script:
- vulture --exclude "*ans.py,conftest.py,get_algorithms.py,re_compile_checker.py,isctest" --ignore-names "after_servers_start,bootstrap,pytestmark,autouse_*" bin/tests/system/
ci-variables:
<<: *precheck_job
<<: *quick_checks_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
@ -682,7 +684,7 @@ ci-variables:
dotenv: ci_vars.env
ci-orphaned-anchors:
<<: *precheck_job
<<: *quick_checks_job
script:
- *git_clone_bind9-qa
- bind9-qa/ci-orphaned-anchors/check-orphaned-anchors-ci.py .gitlab-ci.yml
@ -693,7 +695,7 @@ ci-orphaned-anchors:
- .gitlab-ci.yml
clang-format:
<<: *precheck_job
<<: *quick_checks_job
rules:
- if: '$CI_MERGE_REQUEST_DIFF_BASE_SHA != null'
changes:
@ -716,7 +718,7 @@ clang-format:
when: on_failure
coccinelle:
<<: *precheck_job
<<: *quick_checks_job
rules:
- if: '$CI_MERGE_REQUEST_DIFF_BASE_SHA != null'
changes:
@ -733,7 +735,7 @@ coccinelle:
- if test "$(git status --porcelain | grep -Ev '\?\?' | wc -l)" -gt "0"; then git status --short; exit 1; fi
doctest:
<<: *precheck_job
<<: *quick_checks_job
# This script needs to: 1) fail if the doctest fails, 2) fail if
# the junit.xml file is broken, 3) produce the junit.xml file even if
# the doctest fails. Therefore, $RET is used to "cache" the
@ -762,7 +764,7 @@ doctest:
- junit.xml
pylint:
<<: *precheck_job
<<: *quick_checks_job
<<: *python_triggering_rules
needs: []
variables:
@ -773,7 +775,7 @@ pylint:
- pylint --rcfile $CI_PROJECT_DIR/.pylintrc --load-plugins re_compile_checker --disable=wrong-import-position $(git ls-files 'bin/tests/system/*.py' | grep -vE '(ans\.py|vulture_ignore_list\.py)')
reuse:
<<: *precheck_job
<<: *quick_checks_job
needs: []
image:
name: docker.io/fsfe/reuse:latest
@ -782,7 +784,7 @@ reuse:
- reuse lint
shfmt:
<<: *precheck_job
<<: *quick_checks_job
<<: *shell_triggering_rules
needs: []
script:
@ -796,7 +798,7 @@ shfmt:
when: on_failure
danger:
<<: *precheck_job
<<: *quick_checks_job
needs: []
script:
- pip install git+https://gitlab.isc.org/isc-projects/hazard.git
@ -805,20 +807,20 @@ danger:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
checkbashisms:
<<: *precheck_job
<<: *quick_checks_job
<<: *shell_triggering_rules
needs: []
script:
- checkbashisms $(find . -path './.git' -prune -o -type f -exec sh -c 'head -n 1 "{}" | grep -qsF "#!/bin/sh"' \; -print)
mypy:
<<: *precheck_job
<<: *quick_checks_job
<<: *python_triggering_rules
script:
- mypy "bin/tests/system/isctest/"
tarball-create:
stage: precheck
stage: quick-checks
<<: *base_image
<<: *default_triggering_rules
script:
@ -2092,9 +2094,7 @@ shotgun:doh-get:
# - *shotgun_rule_other
generate-stress-test-configs:
<<: *base_image
<<: *default_triggering_rules
stage: precheck
<<: *quick_checks_job
script:
- *git_clone_bind9-qa
- bind9-qa/stress/generate-stress-test-configs.py > stress-test-configs.yml