| #!/usr/bin/env python3 |
| |
| import argparse |
| from pathlib import Path |
| import json |
| import logging |
| import re |
| import subprocess |
| |
| ROOT = Path(__file__).resolve().parents[1] |
| |
| |
| def determine_remote() -> str: |
| text = (ROOT / "build-scripts/release-info.json").read_text() |
| release_info = json.loads(text) |
| if "remote" in release_info: |
| return release_info["remote"] |
| project_with_version = release_info["name"] |
| project, _ = re.subn("([^a-zA-Z_])", "", project_with_version) |
| return f"libsdl-org/{project}" |
| |
| |
| def main(): |
| default_remote = determine_remote() |
| |
| current_commit = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=ROOT, text=True).strip() |
| |
| parser = argparse.ArgumentParser(allow_abbrev=False) |
| parser.add_argument("--ref", required=True, help=f"Name of branch or tag containing release.yml") |
| parser.add_argument("--remote", "-R", default=default_remote, help=f"Remote repo (default={default_remote})") |
| parser.add_argument("--commit", default=current_commit, help=f"Commit (default={current_commit})") |
| args = parser.parse_args() |
| |
| |
| print(f"Running release.yml workflow:") |
| print(f" commit = {args.commit}") |
| print(f" remote = {args.remote}") |
| |
| subprocess.check_call(["gh", "-R", args.remote, "workflow", "run", "release.yml", "--ref", args.ref, "-f", f"commit={args.commit}"], cwd=ROOT) |
| |
| |
| if __name__ == "__main__": |
| raise SystemExit(main()) |