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
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
## Defining a Robust Testing Strategy
2
2
3
-
This document outlines a testing strategy for Kubernetes features based on the **testing pyramid**, with considerations on the existing CI system's characteristics.
3
+
This document outlines a testing strategy for Kubernetes features based on the [**testing pyramid**](https://martinfowler.com/articles/practical-test-pyramid.html), with considerations on the existing CI system's characteristics.
4
4
5
5
### The Testing Pyramid
6
6
@@ -18,12 +18,12 @@ The Kubernetes job uses [prow](https://prow.k8s.io) to implement the CI system.
18
18
-**Blocking:** Prevents merging if tests fail. Use cautiously due to potential project-wide impact. We aim to have a very high bar on these jobs and ask for proof
19
19
of stability, reliability and performance.
20
20
-**Non-Blocking/Informational:** Provides feedback without blocking merges.
21
-
-**Periodic:** Runs at scheduled intervals. Ideal for monitoring trends and catching regressions.
22
21
-**Postsubmit:** Runs after code is merged. Useful for building artifacts.
22
+
-**Periodic:** Runs at scheduled intervals. Ideal for monitoring trends and catching regressions.
23
23
24
-
#### SIG-Release Blocking and Informing jobs
24
+
#### SIGRelease Blocking and Informing jobs
25
25
26
-
SIG-release maintains two sets of jobs that decide whether the release is
26
+
SIG Release maintains two sets of jobs that decide whether the release is
27
27
healthy: Blocking and Informing.
28
28
29
29
If your feature or area is critical for the release please follow the instructions provided in https://github.com/kubernetes/sig-release/blob/master/release-blocking-jobs.md to promote your periodic jobs to be Blocking or Informing.
@@ -60,12 +60,14 @@ responsible for *running* specific tests.
60
60
- Subscribe to alerts, Testgrid provides early signals if changes elsewhere in Kubernetes break your feature.
61
61
62
62
2.**Non-Blocking Presubmit Jobs:**
63
-
- Configure presubmit jobs to run only when specific files or folders are modified.
63
+
- Configure presubmit jobs to run only when specific files or folders are modified. This can be done using the `run_if_changed`[trigger in prow](https://docs.prow.k8s.io/docs/jobs/#triggering-jobs-based-on-changes).
64
64
- Use OWNERS files to require approval from maintainers of the relevant codebase. This acts as a "soft block," ensuring review and accountability without the risk of halting the entire project.
65
65
- Encourages maintainers to take ownership of their code's quality and stability.
66
66
67
67
### Example: CI Configuration
68
68
69
+
There are a large number of CI jobs configurations that depend on multiple facvtos, here's a basic example. Remember to adapt it to your specific needs.
0 commit comments