mirror of
https://github.com/python/cpython.git
synced 2025-10-17 04:08:28 +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
|
Windows
|
||||||
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
|
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
|
||||||
needs: build-context
|
needs: build-context
|
||||||
if: fromJSON(needs.build-context.outputs.run-tests)
|
if: fromJSON(needs.build-context.outputs.run-windows-tests)
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -654,13 +654,19 @@ jobs:
|
||||||
build_ubuntu,
|
build_ubuntu,
|
||||||
build_ubuntu_ssltests,
|
build_ubuntu_ssltests,
|
||||||
build_wasi,
|
build_wasi,
|
||||||
build_windows,
|
|
||||||
build_asan,
|
build_asan,
|
||||||
build_tsan,
|
build_tsan,
|
||||||
test_hypothesis,
|
test_hypothesis,
|
||||||
'
|
'
|
||||||
|| ''
|
|| ''
|
||||||
}}
|
}}
|
||||||
|
${{
|
||||||
|
!fromJSON(needs.build-context.outputs.run-windows-tests)
|
||||||
|
&& '
|
||||||
|
build_windows,
|
||||||
|
'
|
||||||
|
|| ''
|
||||||
|
}}
|
||||||
${{
|
${{
|
||||||
!fromJSON(needs.build-context.outputs.run-ci-fuzz)
|
!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:
|
run-tests:
|
||||||
description: Whether to run the regular tests
|
description: Whether to run the regular tests
|
||||||
value: ${{ jobs.compute-changes.outputs.run-tests }} # bool
|
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:
|
run-windows-msi:
|
||||||
description: Whether to run the MSI installer smoke tests
|
description: Whether to run the MSI installer smoke tests
|
||||||
value: ${{ jobs.compute-changes.outputs.run-windows-msi }} # bool
|
value: ${{ jobs.compute-changes.outputs.run-windows-msi }} # bool
|
||||||
|
@ -44,6 +47,7 @@ jobs:
|
||||||
run-docs: ${{ steps.changes.outputs.run-docs }}
|
run-docs: ${{ steps.changes.outputs.run-docs }}
|
||||||
run-tests: ${{ steps.changes.outputs.run-tests }}
|
run-tests: ${{ steps.changes.outputs.run-tests }}
|
||||||
run-windows-msi: ${{ steps.changes.outputs.run-windows-msi }}
|
run-windows-msi: ${{ steps.changes.outputs.run-windows-msi }}
|
||||||
|
run-windows-tests: ${{ steps.changes.outputs.run-windows-tests }}
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
|
|
|
@ -21,11 +21,27 @@ if TYPE_CHECKING:
|
||||||
GITHUB_DEFAULT_BRANCH = os.environ["GITHUB_DEFAULT_BRANCH"]
|
GITHUB_DEFAULT_BRANCH = os.environ["GITHUB_DEFAULT_BRANCH"]
|
||||||
GITHUB_CODEOWNERS_PATH = Path(".github/CODEOWNERS")
|
GITHUB_CODEOWNERS_PATH = Path(".github/CODEOWNERS")
|
||||||
GITHUB_WORKFLOWS_PATH = Path(".github/workflows")
|
GITHUB_WORKFLOWS_PATH = Path(".github/workflows")
|
||||||
|
|
||||||
CONFIGURATION_FILE_NAMES = frozenset({
|
CONFIGURATION_FILE_NAMES = frozenset({
|
||||||
".pre-commit-config.yaml",
|
".pre-commit-config.yaml",
|
||||||
".ruff.toml",
|
".ruff.toml",
|
||||||
"mypy.ini",
|
"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_C_OR_CPP = frozenset({".c", ".h", ".cpp"})
|
||||||
SUFFIXES_DOCUMENTATION = frozenset({".rst", ".md"})
|
SUFFIXES_DOCUMENTATION = frozenset({".rst", ".md"})
|
||||||
|
|
||||||
|
@ -36,6 +52,7 @@ class Outputs:
|
||||||
run_docs: bool = False
|
run_docs: bool = False
|
||||||
run_tests: bool = False
|
run_tests: bool = False
|
||||||
run_windows_msi: bool = False
|
run_windows_msi: bool = False
|
||||||
|
run_windows_tests: bool = False
|
||||||
|
|
||||||
|
|
||||||
def compute_changes() -> None:
|
def compute_changes() -> None:
|
||||||
|
@ -53,6 +70,8 @@ def compute_changes() -> None:
|
||||||
|
|
||||||
if outputs.run_tests:
|
if outputs.run_tests:
|
||||||
print("Run tests")
|
print("Run tests")
|
||||||
|
if outputs.run_windows_tests:
|
||||||
|
print("Run Windows tests")
|
||||||
|
|
||||||
if outputs.run_ci_fuzz:
|
if outputs.run_ci_fuzz:
|
||||||
print("Run CIFuzz tests")
|
print("Run CIFuzz tests")
|
||||||
|
@ -98,6 +117,7 @@ def process_changed_files(changed_files: Set[Path]) -> Outputs:
|
||||||
run_tests = False
|
run_tests = False
|
||||||
run_ci_fuzz = False
|
run_ci_fuzz = False
|
||||||
run_docs = False
|
run_docs = False
|
||||||
|
run_windows_tests = False
|
||||||
run_windows_msi = False
|
run_windows_msi = False
|
||||||
|
|
||||||
for file in changed_files:
|
for file in changed_files:
|
||||||
|
@ -120,6 +140,9 @@ def process_changed_files(changed_files: Set[Path]) -> Outputs:
|
||||||
):
|
):
|
||||||
run_tests = True
|
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
|
# The fuzz tests are pretty slow so they are executed only for PRs
|
||||||
# changing relevant files.
|
# changing relevant files.
|
||||||
if file.suffix in SUFFIXES_C_OR_CPP:
|
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_ci_fuzz=run_ci_fuzz,
|
||||||
run_docs=run_docs,
|
run_docs=run_docs,
|
||||||
run_tests=run_tests,
|
run_tests=run_tests,
|
||||||
|
run_windows_tests=run_windows_tests,
|
||||||
run_windows_msi=run_windows_msi,
|
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-ci-fuzz={bool_lower(outputs.run_ci_fuzz)}\n")
|
||||||
f.write(f"run-docs={bool_lower(outputs.run_docs)}\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-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")
|
f.write(f"run-windows-msi={bool_lower(outputs.run_windows_msi)}\n")
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue