From 56282dde6b0239cb2f07609feca0d334424908ad Mon Sep 17 00:00:00 2001 From: Jarek Potiuk Date: Tue, 15 Apr 2025 19:58:41 +0200 Subject: [PATCH] Run all tests when git provider changes Git provider is now used in serialization and versioning tests in core - so until we separate them, we should trigger all tests when the git provider changes. --- .../airflow_breeze/utils/selective_checks.py | 14 ++++++++ dev/breeze/tests/test_selective_checks.py | 35 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py b/dev/breeze/src/airflow_breeze/utils/selective_checks.py index 45c80b23b48cd..47f3907d22511 100644 --- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py +++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py @@ -102,6 +102,7 @@ class FileGroupForCi(Enum): JAVASCRIPT_PRODUCTION_FILES = "javascript_scans" ALWAYS_TESTS_FILES = "always_test_files" API_FILES = "api_files" + GIT_PROVIDER_FILES = "git_provider_files" API_CODEGEN_FILES = "api_codegen_files" HELM_FILES = "helm_files" DEPENDENCY_FILES = "dependency_files" @@ -169,6 +170,9 @@ def __hash__(self): r"^airflow-core/tests/unit/api/", r"^airflow-core/tests/unit/api_fastapi/", ], + FileGroupForCi.GIT_PROVIDER_FILES: [ + r"^providers/git/src/", + ], FileGroupForCi.API_CODEGEN_FILES: [ r"^airflow-core/src/airflow/api_fastapi/core_api/openapi/.*generated\.yaml", r"^clients/gen", @@ -531,6 +535,16 @@ def full_tests_needed(self) -> bool: ): get_console().print("[warning]Running full set of tests because api files changed[/]") return True + if self._matching_files( + FileGroupForCi.GIT_PROVIDER_FILES, + CI_FILE_GROUP_MATCHES, + ): + # TODO(potiuk): remove me when we get rid of the dependency + get_console().print( + "[warning]Running full set of tests because git provider files changed " + "and for now we have core tests depending on them.[/]" + ) + return True if self._matching_files( FileGroupForCi.TESTS_UTILS_FILES, CI_FILE_GROUP_MATCHES, diff --git a/dev/breeze/tests/test_selective_checks.py b/dev/breeze/tests/test_selective_checks.py index 6cb31923a0d06..c98f6de4624eb 100644 --- a/dev/breeze/tests/test_selective_checks.py +++ b/dev/breeze/tests/test_selective_checks.py @@ -1299,6 +1299,41 @@ def test_full_test_needed_when_scripts_changes(files: tuple[str, ...], expected_ @pytest.mark.parametrize( "files, pr_labels, default_branch, expected_outputs,", [ + ( + pytest.param( + ("providers/git/src/airflow/providers/git/test_file.py",), + (), + "main", + { + "selected-providers-list-as-string": ALL_PROVIDERS_AFFECTED, + "all-python-versions": "['3.9']", + "all-python-versions-list-as-string": "3.9", + "all-versions": "false", + "mysql-versions": "['8.0']", + "postgres-versions": "['13']", + "python-versions": "['3.9']", + "python-versions-list-as-string": "3.9", + "kubernetes-versions": "['v1.29.12']", + "kubernetes-versions-list-as-string": "v1.29.12", + "kubernetes-combos-list-as-string": "3.9-v1.29.12", + "ci-image-build": "true", + "prod-image-build": "true", + "run-tests": "true", + "skip-providers-tests": "false", + "docs-build": "true", + "docs-list-as-string": ALL_DOCS_SELECTED_FOR_BUILD, + "full-tests-needed": "true", + "skip-pre-commits": ALL_SKIPPED_COMMITS_BY_DEFAULT_ON_ALL_TESTS_NEEDED, + "upgrade-to-newer-dependencies": "false", + "core-test-types-list-as-strings-in-json": ALL_CI_SELECTIVE_TEST_TYPES_AS_JSON, + "providers-test-types-list-as-strings-in-json": ALL_PROVIDERS_SELECTIVE_TEST_TYPES_AS_JSON, + "needs-mypy": "true", + "mypy-checks": ALL_MYPY_CHECKS, + }, + id="Everything should run including all providers when git provider is changed" + "(special case for now)", + ) + ), ( pytest.param( ("INTHEWILD.md",),