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,
