Add release publish timeout
Build renameable item readme / build (push) Successful in 9s
Package resourcepack release / release (push) Canceled after 2m14s

This commit is contained in:
2026-08-12 13:20:19 +01:00
parent 3087901669
commit 68e165c37b
+12 -1
View File
@@ -4,6 +4,7 @@ from __future__ import annotations
import argparse import argparse
import json import json
import os import os
import sys
import urllib.error import urllib.error
import urllib.parse import urllib.parse
import urllib.request import urllib.request
@@ -11,6 +12,13 @@ import zipfile
from pathlib import Path from pathlib import Path
REQUEST_TIMEOUT_SECONDS = 30
def log(message: str) -> None:
print(message, file=sys.stderr, flush=True)
def zip_resourcepack(resourcepack_root: Path, archive_path: Path) -> None: def zip_resourcepack(resourcepack_root: Path, archive_path: Path) -> None:
archive_path.parent.mkdir(parents=True, exist_ok=True) archive_path.parent.mkdir(parents=True, exist_ok=True)
@@ -24,7 +32,7 @@ def zip_resourcepack(resourcepack_root: Path, archive_path: Path) -> None:
def request_json(request: urllib.request.Request) -> dict[str, object]: def request_json(request: urllib.request.Request) -> dict[str, object]:
with urllib.request.urlopen(request) as response: with urllib.request.urlopen(request, timeout=REQUEST_TIMEOUT_SECONDS) as response:
return json.load(response) return json.load(response)
@@ -97,13 +105,16 @@ def main() -> int:
release_body = args.body or f"Automated resource pack release for {args.tag}." release_body = args.body or f"Automated resource pack release for {args.tag}."
asset_name = f"resourcepack-{args.tag}.zip" asset_name = f"resourcepack-{args.tag}.zip"
log(f"Packaging resource pack from {resourcepack_root}")
zip_resourcepack(resourcepack_root, archive_path) zip_resourcepack(resourcepack_root, archive_path)
log(f"Creating release {args.tag} at {api_base}")
release = create_release(api_base, repository, token, args.tag, release_name, release_body) release = create_release(api_base, repository, token, args.tag, release_name, release_body)
release_id = release.get("id") release_id = release.get("id")
if not isinstance(release_id, int): if not isinstance(release_id, int):
raise SystemExit("Release creation did not return a numeric release id") raise SystemExit("Release creation did not return a numeric release id")
log(f"Uploading {asset_name} to release {release_id}")
upload_asset(api_base, repository, token, release_id, archive_path, asset_name) upload_asset(api_base, repository, token, release_id, archive_path, asset_name)
return 0 return 0