mirror of
https://github.com/python/cpython.git
synced 2025-10-14 18:59:46 +00:00
gh-128446: Skip Windows CI for Unix build system changes (#128450)
Co-authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com> Authored-by: Adam Turner <9087854+aa-turner@users.noreply.github.com>
This commit is contained in:
parent
06ac157c53
commit
b05fa90b21
3 changed files with 37 additions and 2 deletions
10
.github/workflows/build.yml
vendored
10
.github/workflows/build.yml
vendored
|
@ -154,7 +154,7 @@ jobs:
|
|||
Windows
|
||||
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
|
||||
needs: build-context
|
||||
if: fromJSON(needs.build-context.outputs.run-tests)
|
||||
if: fromJSON(needs.build-context.outputs.run-windows-tests)
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
@ -654,13 +654,19 @@ jobs:
|
|||
build_ubuntu,
|
||||
build_ubuntu_ssltests,
|
||||
build_wasi,
|
||||
build_windows,
|
||||
build_asan,
|
||||
build_tsan,
|
||||
test_hypothesis,
|
||||
'
|
||||
|| ''
|
||||
}}
|
||||
${{
|
||||
!fromJSON(needs.build-context.outputs.run-windows-tests)
|
||||
&& '
|
||||
build_windows,
|
||||
'
|
||||
|| ''
|
||||
}}
|
||||
${{
|
||||
!fromJSON(needs.build-context.outputs.run-ci-fuzz)
|
||||
&& '
|
||||
|
|
4
.github/workflows/reusable-context.yml
vendored
4
.github/workflows/reusable-context.yml
vendored
|
@ -26,6 +26,9 @@ on: # yamllint disable-line rule:truthy
|
|||
run-tests:
|
||||
description: Whether to run the regular tests
|
||||
value: ${{ jobs.compute-changes.outputs.run-tests }} # bool
|
||||
run-windows-tests:
|
||||
description: Whether to run the Windows tests
|
||||
value: ${{ jobs.compute-changes.outputs.run-windows-tests }} # bool
|
||||
run-windows-msi:
|
||||
description: Whether to run the MSI installer smoke tests
|
||||
value: ${{ jobs.compute-changes.outputs.run-windows-msi }} # bool
|
||||
|
@ -44,6 +47,7 @@ jobs:
|
|||
run-docs: ${{ steps.changes.outputs.run-docs }}
|
||||
run-tests: ${{ steps.changes.outputs.run-tests }}
|
||||
run-windows-msi: ${{ steps.changes.outputs.run-windows-msi }}
|
||||
run-windows-tests: ${{ steps.changes.outputs.run-windows-tests }}
|
||||
steps:
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
|
|
|
@ -21,11 +21,27 @@ if TYPE_CHECKING:
|
|||
GITHUB_DEFAULT_BRANCH = os.environ["GITHUB_DEFAULT_BRANCH"]
|
||||
GITHUB_CODEOWNERS_PATH = Path(".github/CODEOWNERS")
|
||||
GITHUB_WORKFLOWS_PATH = Path(".github/workflows")
|
||||
|
||||
CONFIGURATION_FILE_NAMES = frozenset({
|
||||
".pre-commit-config.yaml",
|
||||
".ruff.toml",
|
||||
"mypy.ini",
|
||||
})
|
||||
UNIX_BUILD_SYSTEM_FILE_NAMES = frozenset({
|
||||
Path("aclocal.m4"),
|
||||
Path("config.guess"),
|
||||
Path("config.sub"),
|
||||
Path("configure"),
|
||||
Path("configure.ac"),
|
||||
Path("install-sh"),
|
||||
Path("Makefile.pre.in"),
|
||||
Path("Modules/makesetup"),
|
||||
Path("Modules/Setup"),
|
||||
Path("Modules/Setup.bootstrap.in"),
|
||||
Path("Modules/Setup.stdlib.in"),
|
||||
Path("Tools/build/regen-configure.sh"),
|
||||
})
|
||||
|
||||
SUFFIXES_C_OR_CPP = frozenset({".c", ".h", ".cpp"})
|
||||
SUFFIXES_DOCUMENTATION = frozenset({".rst", ".md"})
|
||||
|
||||
|
@ -36,6 +52,7 @@ class Outputs:
|
|||
run_docs: bool = False
|
||||
run_tests: bool = False
|
||||
run_windows_msi: bool = False
|
||||
run_windows_tests: bool = False
|
||||
|
||||
|
||||
def compute_changes() -> None:
|
||||
|
@ -53,6 +70,8 @@ def compute_changes() -> None:
|
|||
|
||||
if outputs.run_tests:
|
||||
print("Run tests")
|
||||
if outputs.run_windows_tests:
|
||||
print("Run Windows tests")
|
||||
|
||||
if outputs.run_ci_fuzz:
|
||||
print("Run CIFuzz tests")
|
||||
|
@ -98,6 +117,7 @@ def process_changed_files(changed_files: Set[Path]) -> Outputs:
|
|||
run_tests = False
|
||||
run_ci_fuzz = False
|
||||
run_docs = False
|
||||
run_windows_tests = False
|
||||
run_windows_msi = False
|
||||
|
||||
for file in changed_files:
|
||||
|
@ -120,6 +140,9 @@ def process_changed_files(changed_files: Set[Path]) -> Outputs:
|
|||
):
|
||||
run_tests = True
|
||||
|
||||
if file not in UNIX_BUILD_SYSTEM_FILE_NAMES:
|
||||
run_windows_tests = True
|
||||
|
||||
# The fuzz tests are pretty slow so they are executed only for PRs
|
||||
# changing relevant files.
|
||||
if file.suffix in SUFFIXES_C_OR_CPP:
|
||||
|
@ -142,6 +165,7 @@ def process_changed_files(changed_files: Set[Path]) -> Outputs:
|
|||
run_ci_fuzz=run_ci_fuzz,
|
||||
run_docs=run_docs,
|
||||
run_tests=run_tests,
|
||||
run_windows_tests=run_windows_tests,
|
||||
run_windows_msi=run_windows_msi,
|
||||
)
|
||||
|
||||
|
@ -172,6 +196,7 @@ def write_github_output(outputs: Outputs) -> None:
|
|||
f.write(f"run-ci-fuzz={bool_lower(outputs.run_ci_fuzz)}\n")
|
||||
f.write(f"run-docs={bool_lower(outputs.run_docs)}\n")
|
||||
f.write(f"run-tests={bool_lower(outputs.run_tests)}\n")
|
||||
f.write(f"run-windows-tests={bool_lower(outputs.run_windows_tests)}\n")
|
||||
f.write(f"run-windows-msi={bool_lower(outputs.run_windows_msi)}\n")
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue