File: create-release.py

package info (click to toggle)
libsdl2 2.32.10%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 72,140 kB
  • sloc: ansic: 310,412; objc: 10,850; cpp: 9,959; xml: 6,904; sh: 5,722; perl: 3,277; python: 1,643; makefile: 1,041; asm: 661; javascript: 286
file content (43 lines) | stat: -rwxr-xr-x 1,417 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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())