ci: extract release id with grep instead of python
Release / linux (push) Successful in 18m27s
Release / windows (push) Successful in 21m53s

The Windows runner's act_runner service env still lacks python/python3, so the
release-upload step failed to parse JSON. Use grep to pull the release id,
removing the Python dependency from both upload steps.
This commit is contained in:
2026-09-01 11:41:57 +08:00
parent 064e935a60
commit 71735cc31e
+4 -6
View File
@@ -137,17 +137,16 @@ jobs:
set -euo pipefail
API="${GITEA_SERVER}/api/v1/repos/${REPO_OWNER}/${REPO_NAME}"
AUTH="Authorization: token ${GITHUB_TOKEN}"
PY="python3"; command -v python3 >/dev/null 2>&1 || PY="python"
# Ensure the release exists (idempotent — both jobs may call this).
REL_ID=$(curl -fsS -H "$AUTH" "${API}/releases/tags/${TAG}" \
| $PY -c "import sys,json;print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true)
| grep -o '"id":[0-9]*' | head -1 | cut -d: -f2 || true)
if [ -z "$REL_ID" ]; then
BODY="Gridline ${TAG#v} — Linux and Windows installers."
REL_ID=$(curl -fsS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d "{\"tag_name\":\"${TAG}\",\"name\":\"Gridline ${TAG#v}\",\"body\":\"${BODY}\",\"draft\":true}" \
"${API}/releases" \
| $PY -c "import sys,json;print(json.load(sys.stdin)['id'])")
| grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
fi
BUNDLE="${GITHUB_WORKSPACE}/desktop/src-tauri/target/release/bundle"
@@ -250,16 +249,15 @@ jobs:
set -euo pipefail
API="${GITEA_SERVER}/api/v1/repos/${REPO_OWNER}/${REPO_NAME}"
AUTH="Authorization: token ${GITHUB_TOKEN}"
PY="python3"; command -v python3 >/dev/null 2>&1 || PY="python"
REL_ID=$(curl -fsS -H "$AUTH" "${API}/releases/tags/${TAG}" \
| $PY -c "import sys,json;print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true)
| grep -o '"id":[0-9]*' | head -1 | cut -d: -f2 || true)
if [ -z "$REL_ID" ]; then
BODY="Gridline ${TAG#v} — Linux and Windows installers."
REL_ID=$(curl -fsS -X POST -H "$AUTH" -H "Content-Type: application/json" \
-d "{\"tag_name\":\"${TAG}\",\"name\":\"Gridline ${TAG#v}\",\"body\":\"${BODY}\",\"draft\":true}" \
"${API}/releases" \
| $PY -c "import sys,json;print(json.load(sys.stdin)['id'])")
| grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
fi
BUNDLE="${GITHUB_WORKSPACE}/desktop/src-tauri/target/release/bundle"