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
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
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"})
run_docs: bool = False
run_tests: bool = False
run_windows_msi: bool = False
+ run_windows_tests: bool = False
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")
run_tests = False
run_ci_fuzz = False
run_docs = False
+ run_windows_tests = False
run_windows_msi = False
for file in changed_files:
):
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:
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,
)
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")