From a66b1d22e192b5724693a6334d3f03cb04b61505 Mon Sep 17 00:00:00 2001 From: t1amak Date: Thu, 19 Mar 2026 19:45:22 +0100 Subject: [PATCH] Use jq for manual release creation --- .gitea/workflows/release.yml | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index cbf40b7..4f06697 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -21,6 +21,11 @@ jobs: release_id: ${{ steps.release.outputs.release_id }} release_name: ${{ steps.release.outputs.release_name }} steps: + - name: Install release tooling + run: | + sudo apt-get update + sudo apt-get install -y curl jq + - name: Create or reuse Gitea release id: release env: @@ -49,7 +54,10 @@ jobs: "${get_release_url}")" if [ "${status}" = "200" ]; then - python3 -c 'import json; data=json.load(open("/tmp/release.json", "r", encoding="utf-8")); print(f"release_id={data[\"id\"]}"); print(f"release_name={data[\"name\"]}")' >> "$GITHUB_OUTPUT" + { + echo "release_id=$(jq -r '.id' /tmp/release.json)" + echo "release_name=$(jq -r '.name' /tmp/release.json)" + } >> "$GITHUB_OUTPUT" exit 0 fi @@ -59,7 +67,13 @@ jobs: exit 1 fi - python3 -c 'import json, os; payload={"tag_name": os.environ["TAG_NAME"], "target_commitish": os.environ["TARGET_COMMITISH"], "name": os.environ["RELEASE_NAME"], "body": os.environ.get("RELEASE_NOTES", ""), "draft": False, "prerelease": False}; print(json.dumps(payload))' > /tmp/release-payload.json + jq -n \ + --arg tag_name "${TAG_NAME}" \ + --arg target_commitish "${TARGET_COMMITISH}" \ + --arg name "${RELEASE_NAME}" \ + --arg body "${RELEASE_NOTES}" \ + '{tag_name:$tag_name,target_commitish:$target_commitish,name:$name,body:$body,draft:false,prerelease:false}' \ + > /tmp/release-payload.json curl -sS \ -H "Authorization: token ${GITEA_TOKEN}" \ @@ -69,7 +83,15 @@ jobs: "${create_release_url}" \ -o /tmp/release.json - python3 -c 'import json; data=json.load(open("/tmp/release.json", "r", encoding="utf-8")); (_ for _ in ()).throw(SystemExit(json.dumps(data, indent=2))) if "id" not in data else None; print(f"release_id={data[\"id\"]}"); print(f"release_name={data[\"name\"]}")' >> "$GITHUB_OUTPUT" + if ! jq -e '.id' /tmp/release.json >/dev/null; then + cat /tmp/release.json + exit 1 + fi + + { + echo "release_id=$(jq -r '.id' /tmp/release.json)" + echo "release_name=$(jq -r '.name' /tmp/release.json)" + } >> "$GITHUB_OUTPUT" build-release: name: ${{ matrix.toolchain.name }}