You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: contributors/devel/sig-testing/testing-strategy.md
+38
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,44 @@ The Kubernetes job uses [prow](https://prow.k8s.io) to implement the CI system.
26
26
-**Postsubmit:** Runs after code is merged. Useful for building artifacts.
27
27
-**Periodic:** Runs at scheduled intervals. Ideal for monitoring trends and catching regressions.
28
28
29
+
#### Non-blocking triggered by path
30
+
31
+
Usually, blocking pre-submit jobs run by default and non-blocking jobs don't. The `/test` command
32
+
has to be used explicitly for such non-blocking jobs. It is possible to configure such
33
+
jobs so that they [run automatically when certain paths are modified](https://github.com/kubernetes/test-infra/blob/ee70308f09c10f7cd933c26c98acc7ebf785d436/config/jobs/kubernetes/sig-node/sig-node-presubmit.yaml#L3201-L3202).
34
+
35
+
Non-blocking jobs cannot detect all regressions. A test flake might succeed
36
+
when tested only once during presubmit. When defining the path trigger, it's
37
+
impossible to list everything that might cause a need to run tests
38
+
(e.g. tool changes, updates in packages that a feature depends on). Therefore
39
+
it is required to have a periodic job which runs the same tests regularly.
40
+
41
+
The advantage of also having a non-blocking job that gets triggered automatically is
42
+
that reviewers don't need to remember to run it and that problems get
43
+
discovered sooner. Without it, maintainers are forced to diagnose regressions
44
+
in a periodic job and then have to ping the contributor who caused the problem.
45
+
If that contributor is unresponsive, maintainers may have to fix the problem
46
+
themselves.
47
+
48
+
Instead, the burden is on the contributor whose pull request fails the
49
+
tests. If they are unresponsive, their change doesn't get merged and there's no
50
+
regression.
51
+
52
+
> [!CAUTION]
53
+
> A non-blocking job that fails confuses other contributors
54
+
> who are not familiar with the job or the failures. If it runs too often, it
55
+
> wastes CI resources.
56
+
57
+
To avoid those negative consequences for the project, the guidelines for
58
+
setting up such a job are:
59
+
60
+
* The job owners are responsive and react to problems with the job.
61
+
* The job must have a low failure rate to avoid confusion in drive-by pull requests.
62
+
* The importance of the feature must justify the extra CI resources (depends
63
+
on how often it gets triggered).
64
+
* The `run_if_changed` regular expression must be narrow enough that
65
+
the job doesn't run for unrelated changes.
66
+
29
67
#### SIG Release Blocking and Informing jobs
30
68
31
69
SIG Release maintains two sets of jobs that decide whether the release is
0 commit comments