From 7e3f0c675a565da75fb2aeaeabdaff838a2e398a Mon Sep 17 00:00:00 2001 From: chexit Date: Wed, 28 Oct 2026 21:38:28 +0300 Subject: [PATCH] CI: report why a release could not be created Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/build.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index f56c80f..31af19d 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -59,7 +59,13 @@ jobs: set -e BODY=$(printf 'Сборка %s (%s).\n\n- airdef.hmod — мод, для всех ОС;\n- airdef-linux-x86_64.tar.gz — игра-форк Horizon для Linux с модом и play.sh.\n\nСборки для Windows и macOS добавляет workflow desktop (запуск вручную с этим тегом).\nКак запускать: docs/INSTALL.md.' "$TAG" "$SHA") DATA=$(BODY="$BODY" python3 -c 'import json,os;print(json.dumps({"tag_name":os.environ["TAG"],"target_commitish":os.environ["SHA"],"name":os.environ["TAG"],"body":os.environ["BODY"]}))') - ID=$(curl -sf -X POST -H "Authorization: token $TOKEN" -H "Content-Type: application/json" "$API/releases" -d "$DATA" | python3 -c 'import json,sys;print(json.load(sys.stdin)["id"])') + if [ -z "$TOKEN" ]; then echo "::error::нет токена: добавь секрет RELEASE_TOKEN"; exit 1; fi + CODE=$(curl -sS -o release.json -w '%{http_code}' -X POST -H "Authorization: token $TOKEN" -H "Content-Type: application/json" "$API/releases" -d "$DATA") + if [ "$CODE" != "201" ]; then + echo "::error::Gitea не создала релиз (HTTP $CODE): $(cat release.json). Встроенному токену может не хватать прав — добавь секрет RELEASE_TOKEN (токен с правом записи в репозиторий)." + exit 1 + fi + ID=$(python3 -c 'import json;print(json.load(open("release.json"))["id"])') for f in out/*; do name=$(basename "$f") echo "upload $name"