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

ephraimanierobi pushed a commit to branch v2-4-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 5cda86a2fa9da95e40999d87424f8f5d95e9e7c9
Author: Jarek Potiuk <[email protected]>
AuthorDate: Thu Nov 10 23:38:06 2022 +0100

    Only run mypy/flake static tests for providers in main branch (#27608)
    
    (cherry picked from commit 93459535684b847f16c4fdeb043aeb10dae1c852)
---
 .github/workflows/ci.yml                        |  1 +
 scripts/ci/pre_commit/common_precommit_utils.py |  8 ++++++++
 scripts/ci/pre_commit/pre_commit_flake8.py      | 11 +++++++++--
 scripts/ci/pre_commit/pre_commit_mypy.py        | 11 +++++++++--
 4 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 196dcf42c2..9b1f392129 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -703,6 +703,7 @@ ${{ hashFiles('.pre-commit-config.yaml') }}"
           SKIP: ${{ needs.build-info.outputs.skip-pre-commits }}
           COLUMNS: "250"
           SKIP_GROUP_OUTPUT: "true"
+          DEFAULT_BRANCH: ${{ needs.build-info.outputs.default-branch }}
       - name: "Fix ownership"
         run: breeze ci fix-ownership
         if: always()
diff --git a/scripts/ci/pre_commit/common_precommit_utils.py 
b/scripts/ci/pre_commit/common_precommit_utils.py
index 9a3a4b1705..8326c28a5f 100644
--- a/scripts/ci/pre_commit/common_precommit_utils.py
+++ b/scripts/ci/pre_commit/common_precommit_utils.py
@@ -24,6 +24,14 @@ from pathlib import Path
 AIRFLOW_SOURCES_ROOT = Path(__file__).parents[3].resolve()
 
 
+def filter_out_providers_on_non_main_branch(files: list[str]) -> list[str]:
+    """When running build on non-main branch do not take providers into 
account"""
+    default_branch = os.environ.get("DEFAULT_BRANCH")
+    if not default_branch or default_branch == "main":
+        return files
+    return [file for file in files if not 
file.startswith(f"airflow{os.sep}providers")]
+
+
 def insert_documentation(file_path: Path, content: list[str], header: str, 
footer: str):
     text = file_path.read_text().splitlines(keepends=True)
     replacing = False
diff --git a/scripts/ci/pre_commit/pre_commit_flake8.py 
b/scripts/ci/pre_commit/pre_commit_flake8.py
index 9ffd881e82..1a438588b9 100755
--- a/scripts/ci/pre_commit/pre_commit_flake8.py
+++ b/scripts/ci/pre_commit/pre_commit_flake8.py
@@ -34,12 +34,19 @@ VERBOSE = os.environ.get('VERBOSE', "false")[0].lower() == 
"t"
 DRY_RUN = os.environ.get('DRY_RUN', "false")[0].lower() == "t"
 os.environ['SKIP_GROUP_OUTPUT'] = "true"
 
-if __name__ == '__main__':
+if __name__ == "__main__":
+    sys.path.insert(0, str(Path(__file__).parent.resolve()))  # make sure 
common_precommit_utils is imported
+    from common_precommit_utils import filter_out_providers_on_non_main_branch
+
     sys.path.insert(0, str(AIRFLOW_SOURCES / "dev" / "breeze" / "src"))
     from airflow_breeze.global_constants import MOUNT_SELECTED
     from airflow_breeze.utils.docker_command_utils import 
get_extra_docker_flags
     from airflow_breeze.utils.run_utils import get_ci_image_for_pre_commits, 
run_command
 
+    files_to_test = filter_out_providers_on_non_main_branch(sys.argv[1:])
+    if not files_to_test:
+        print("No files to tests. Quitting")
+        sys.exit(0)
     airflow_image = get_ci_image_for_pre_commits(verbose=VERBOSE, 
dry_run=DRY_RUN)
     cmd_result = run_command(
         [
@@ -55,7 +62,7 @@ if __name__ == '__main__':
             "never",
             airflow_image,
             "/opt/airflow/scripts/in_container/run_flake8.sh",
-            *sys.argv[1:],
+            *files_to_test,
         ],
         check=False,
         verbose=VERBOSE,
diff --git a/scripts/ci/pre_commit/pre_commit_mypy.py 
b/scripts/ci/pre_commit/pre_commit_mypy.py
index 8ff73e888f..a5f6a185bd 100755
--- a/scripts/ci/pre_commit/pre_commit_mypy.py
+++ b/scripts/ci/pre_commit/pre_commit_mypy.py
@@ -35,13 +35,20 @@ VERBOSE = os.environ.get('VERBOSE', "false")[0].lower() == 
"t"
 DRY_RUN = os.environ.get('DRY_RUN', "false")[0].lower() == "t"
 os.environ['SKIP_GROUP_OUTPUT'] = "true"
 
-if __name__ == '__main__':
+if __name__ == "__main__":
+    sys.path.insert(0, str(Path(__file__).parent.resolve()))  # make sure 
common_precommit_utils is imported
+    from common_precommit_utils import filter_out_providers_on_non_main_branch
+
     sys.path.insert(0, str(AIRFLOW_SOURCES / "dev" / "breeze" / "src"))
     from airflow_breeze.global_constants import MOUNT_SELECTED
     from airflow_breeze.utils.docker_command_utils import 
get_extra_docker_flags
     from airflow_breeze.utils.path_utils import create_mypy_volume_if_needed
     from airflow_breeze.utils.run_utils import get_ci_image_for_pre_commits, 
run_command
 
+    files_to_test = filter_out_providers_on_non_main_branch(sys.argv[1:])
+    if files_to_test == ["--namespace-packages"]:
+        print("No files to tests. Quitting")
+        sys.exit(0)
     airflow_image = get_ci_image_for_pre_commits(verbose=VERBOSE, 
dry_run=DRY_RUN)
     create_mypy_volume_if_needed()
     cmd_result = run_command(
@@ -58,7 +65,7 @@ if __name__ == '__main__':
             "never",
             airflow_image,
             "/opt/airflow/scripts/in_container/run_mypy.sh",
-            *sys.argv[1:],
+            *files_to_test,
         ],
         check=False,
         verbose=VERBOSE,

Reply via email to