You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by we...@apache.org on 2026/07/08 10:04:33 UTC
(airflow) branch v3-3-test updated: [v3-3-test] Let area:kubernetes-tests label force the Kubernetes tests job (#69519) (#69593)
This is an automated email from the ASF dual-hosted git repository.
Lee-W pushed a commit to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-3-test by this push:
new e61d69809df [v3-3-test] Let area:kubernetes-tests label force the Kubernetes tests job (#69519) (#69593)
e61d69809df is described below
commit e61d69809df466dd7ecfb7367ca247727a84e1f6
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Wed Jul 8 18:04:23 2026 +0800
[v3-3-test] Let area:kubernetes-tests label force the Kubernetes tests job (#69519) (#69593)
Co-authored-by: Jason(Zhe-You) Liu <68...@users.noreply.github.com>
---
dev/breeze/doc/ci/04_selective_checks.md | 1 +
.../src/airflow_breeze/utils/selective_checks.py | 7 ++++++
dev/breeze/tests/test_selective_checks.py | 27 ++++++++++++++++++++++
3 files changed, 35 insertions(+)
diff --git a/dev/breeze/doc/ci/04_selective_checks.md b/dev/breeze/doc/ci/04_selective_checks.md
index eecf35b853c..1ac25c1eb57 100644
--- a/dev/breeze/doc/ci/04_selective_checks.md
+++ b/dev/breeze/doc/ci/04_selective_checks.md
@@ -623,6 +623,7 @@ This table summarizes the labels you can use on PRs to control the selective che
|----------------------------------|----------------------------------|-------------------------------------------------------------------------------------------|
| all versions | all-versions, *-versions-* | Run tests for all python and k8s versions. |
| allow suspended provider changes | allow-suspended-provider-changes | Allow changes to suspended providers. |
+| area:kubernetes-tests | run-kubernetes-tests | If set, the Kubernetes tests job is run regardless of changed files (does not force the full test matrix). |
| canary | is-canary-run | If set, the PR run from apache/airflow repo behaves as `canary` run. |
| debug ci resources | debug-ci-resources | If set, then debugging resources is enabled during parallel tests and you can see them. |
| default versions only | all-versions, *-versions-* | If set, the number of Python and Kubernetes, DB versions are limited to the default ones. |
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index bdaefdfd053..c3a651ecafc 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -92,6 +92,7 @@ UPGRADE_TO_NEWER_DEPENDENCIES_LABEL = "upgrade to newer dependencies"
USE_PUBLIC_RUNNERS_LABEL = "use public runners"
ALLOW_PROVIDER_DEPENDENCY_BUMP_LABEL = "allow provider dependency bump"
SKIP_COMMON_COMPAT_CHECK_LABEL = "skip common compat check"
+AREA_KUBERNETES_TESTS_LABEL = "area:kubernetes-tests"
ALL_CI_SELECTIVE_TEST_TYPES = "API Always CLI Core Other Serialization"
ALL_PROVIDERS_SELECTIVE_TEST_TYPES = (
@@ -1061,6 +1062,12 @@ class SelectiveChecks:
@cached_property
def run_kubernetes_tests(self) -> bool:
+ if AREA_KUBERNETES_TESTS_LABEL in self._pr_labels:
+ console_print(
+ "[warning]Running Kubernetes tests because "
+ f"label '{AREA_KUBERNETES_TESTS_LABEL}' is in {self._pr_labels}[/]"
+ )
+ return True
return self._should_be_run(FileGroupForCi.KUBERNETES_FILES)
@cached_property
diff --git a/dev/breeze/tests/test_selective_checks.py b/dev/breeze/tests/test_selective_checks.py
index cbecbdd9442..ccf365d4734 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -3518,6 +3518,33 @@ def test_individual_providers_excludes_platform_excluded_on_arm():
assert "Providers[ibm.mq]" in amd_output
+def test_run_kubernetes_tests_forced_by_label():
+ """`area:kubernetes-tests` forces the Kubernetes tests job without pulling in
+ the full test matrix, unlike `full tests needed`."""
+ checks = SelectiveChecks(
+ files=("INTHEWILD.md",),
+ commit_ref=NEUTRAL_COMMIT,
+ github_event=GithubEvents.PULL_REQUEST,
+ default_branch="main",
+ pr_labels=("area:kubernetes-tests",),
+ )
+ assert checks.run_kubernetes_tests is True
+ assert checks.full_tests_needed is False
+
+
+def test_run_kubernetes_tests_forced_by_label_with_no_changed_files():
+ """The label still forces the Kubernetes tests job even when no files changed."""
+ checks = SelectiveChecks(
+ files=(),
+ commit_ref=NEUTRAL_COMMIT,
+ github_event=GithubEvents.PULL_REQUEST,
+ default_branch="main",
+ pr_labels=("area:kubernetes-tests",),
+ )
+ assert checks.run_kubernetes_tests is True
+ assert checks.full_tests_needed is False
+
+
def test_filter_platform_excluded_test_types_handles_all_shapes():
"""Direct unit check of the in-place filter for the three Providers[...] shapes."""
checks = SelectiveChecks(