refactor: migrate to gitea actions

This commit is contained in:
Nils Andreas Svee committed 2026-10-11 00:08:38 +07:00
1 parent 36e69fdd67
commit d77da7cc34
11 files changed
+480 -7

No files matched your search

+40
View File
@@ -0,0 +1,40 @@
#!/usr/bin/env python3
"""Resolve the same stable/oldstable x target matrix as Jenkins."""
import json
import os
import re
import subprocess
import tempfile
import urllib.request
def resolve(versions, targets):
versions = [versions[k] for k in ("stable_version", "oldstable_version") if versions.get(k)]
if not versions:
raise ValueError("OpenWrt returned no stable or oldstable version")
targets = [t.strip() for t in targets.split(",") if t.strip()]
if not targets:
raise ValueError("No targets selected")
for target in targets:
if not re.fullmatch(r"[a-z0-9_+-]+/[a-z0-9_+-]+", target):
raise ValueError(f"Invalid target: {target!r}")
for version in versions:
if not re.fullmatch(r"[a-zA-Z0-9_.-]+", version):
raise ValueError(f"Invalid version: {version!r}")
return {"include": [{"target": t.replace("/", "-"), "version": v}
for v in versions for t in dict.fromkeys(targets)]}
if __name__ == "__main__":
with urllib.request.urlopen("https://downloads.openwrt.org/.versions.json", timeout=60) as response:
versions = json.load(response)
targets = os.environ.get("TARGETS", "x86/64,mediatek/filogic,octeon/generic")
if targets.strip() == "all":
with tempfile.TemporaryDirectory(prefix="openwrt-targets-") as source:
subprocess.run(["git", "clone", "--depth", "1", "https://github.com/openwrt/openwrt.git", source], check=True)
output = subprocess.check_output(["perl", "scripts/dump-target-info.pl", "targets"], cwd=source, text=True)
targets = ",".join(line.split()[0] for line in output.splitlines() if line.strip())
matrix = json.dumps(resolve(versions, targets), separators=(",", ":"))
print(matrix)
with open(os.environ["GITHUB_OUTPUT"], "a") as output:
output.write(f"matrix={matrix}\n")