This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new e6d898c2390 Let area:e2e-tests label force the airflow-e2e-tests suite 
(#69993)
e6d898c2390 is described below

commit e6d898c2390cdb676eed7e503816b4fb6f7e2529
Author: Jason(Zhe-You) Liu <[email protected]>
AuthorDate: Mon Jul 20 06:21:59 2026 +0800

    Let area:e2e-tests label force the airflow-e2e-tests suite (#69993)
    
    * Let area:e2e-test label force Airflow E2E tests
    
    Contributors validating changes whose impact selective-checks' file 
heuristics miss otherwise have to request the full test matrix. A focused area 
label lets them run the standard Airflow E2E suite without unrelated test jobs.
    
    * Use the plural E2E tests area label
---
 .github/boring-cyborg.yml                               |  3 +++
 dev/breeze/doc/ci/04_selective_checks.md                |  1 +
 dev/breeze/src/airflow_breeze/utils/selective_checks.py |  7 +++++++
 dev/breeze/tests/test_selective_checks.py               | 13 +++++++++++++
 4 files changed, 24 insertions(+)

diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml
index cd31dc07f40..e1535a247ce 100644
--- a/.github/boring-cyborg.yml
+++ b/.github/boring-cyborg.yml
@@ -596,6 +596,9 @@ labelPRBasedOnFilePath:
   area:docker-tests:
     - docker-tests/**/*
 
+  area:e2e-tests:
+    - airflow-e2e-tests/**/*
+
   area:kubernetes-tests:
     - kubernetes-tests/**/*
 
diff --git a/dev/breeze/doc/ci/04_selective_checks.md 
b/dev/breeze/doc/ci/04_selective_checks.md
index 59d55d11178..f63a118b2ba 100644
--- a/dev/breeze/doc/ci/04_selective_checks.md
+++ b/dev/breeze/doc/ci/04_selective_checks.md
@@ -651,6 +651,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:e2e-tests                   | prod-image-build                 | If 
set, the Airflow E2E tests are run regardless of changed files (does not force 
the full test matrix). |
 | 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.   |
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py 
b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index 970c90e606f..589b286d75e 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -93,6 +93,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_E2E_TESTS_LABEL = "area:e2e-tests"
 AREA_KUBERNETES_TESTS_LABEL = "area:kubernetes-tests"
 ALL_CI_SELECTIVE_TEST_TYPES = "API Always CLI Core Other Serialization"
 
@@ -1208,6 +1209,12 @@ class SelectiveChecks:
 
     @cached_property
     def prod_image_build(self) -> bool:
+        if AREA_E2E_TESTS_LABEL in self._pr_labels:
+            console_print(
+                "[warning]Building the PROD image to run Airflow E2E tests 
because "
+                f"label '{AREA_E2E_TESTS_LABEL}' is in {self._pr_labels}[/]"
+            )
+            return True
         return (
             self.run_kubernetes_tests
             or self.run_helm_tests
diff --git a/dev/breeze/tests/test_selective_checks.py 
b/dev/breeze/tests/test_selective_checks.py
index 3698d41d51b..7fe29df1bda 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -3492,6 +3492,19 @@ def 
test_run_kubernetes_tests_forced_by_label_with_no_changed_files():
     assert checks.full_tests_needed is False
 
 
[email protected]("files", [("INTHEWILD.md",), ()], 
ids=["unrelated-file", "no-files"])
+def test_prod_image_build_forced_by_e2e_tests_label(files):
+    checks = SelectiveChecks(
+        files=files,
+        commit_ref=NEUTRAL_COMMIT,
+        github_event=GithubEvents.PULL_REQUEST,
+        default_branch="main",
+        pr_labels=("area:e2e-tests",),
+    )
+    assert checks.prod_image_build 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(

Reply via email to