mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-25 14:09:10 +00:00
ci: limit jobs by using sdl-ci-filter
[sdl-ci-filter msvc-*]
This commit is contained in:
parent
eae6758abe
commit
12eb1f1497
2 changed files with 34 additions and 2 deletions
26
.github/workflows/create-test-plan.py
vendored
26
.github/workflows/create-test-plan.py
vendored
|
@ -1,10 +1,12 @@
|
|||
#!/usr/bin/env python
|
||||
import argparse
|
||||
import dataclasses
|
||||
import fnmatch
|
||||
from enum import Enum
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
from typing import Optional
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -595,6 +597,7 @@ def main():
|
|||
parser.add_argument("--github-variable-prefix", default="platforms")
|
||||
parser.add_argument("--github-ci", action="store_true")
|
||||
parser.add_argument("--verbose", action="store_true")
|
||||
parser.add_argument("--commit-message-file")
|
||||
args = parser.parse_args()
|
||||
|
||||
logging.basicConfig(level=logging.INFO if args.verbose else logging.WARNING)
|
||||
|
@ -608,6 +611,18 @@ def main():
|
|||
),
|
||||
)
|
||||
|
||||
filters = []
|
||||
if args.commit_message_file:
|
||||
with open(args.commit_message_file, "r") as f:
|
||||
commit_message = f.read()
|
||||
for m in re.finditer(r"\[sdl-ci-filter (.*)]", commit_message, flags=re.M):
|
||||
filters.append(m.group(1).strip(" \t\n\r\t'\""))
|
||||
|
||||
if not filters:
|
||||
filters.append("*")
|
||||
|
||||
logger.info("filters: %r", filters)
|
||||
|
||||
all_level_platforms = {}
|
||||
|
||||
for level_i, level_keys in enumerate(all_level_keys, 1):
|
||||
|
@ -619,6 +634,16 @@ def main():
|
|||
all_level_platforms[level_key] = specs_to_plaform(level_specs)
|
||||
logger.info("=" * 80)
|
||||
|
||||
logger.info("Keys before filter: %r", remaining_keys)
|
||||
|
||||
filtered_remaining_keys = set()
|
||||
for filter in filters:
|
||||
filtered_remaining_keys.update(fnmatch.filter(remaining_keys, filter))
|
||||
|
||||
logger.info("Keys after filter: %r", filtered_remaining_keys)
|
||||
|
||||
remaining_keys = filtered_remaining_keys
|
||||
|
||||
logger.info("Remaining:")
|
||||
remaining_specs = tuple(JOB_SPECS[key] for key in remaining_keys)
|
||||
all_level_platforms["others"] = specs_to_plaform(remaining_specs)
|
||||
|
@ -639,4 +664,3 @@ def main():
|
|||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue