diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d9a5033a34..13b4032e8f 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -393,21 +393,34 @@ jobs: fi # Create release - release_id=$(curl -s -X POST \ + response=$(curl -s -w "\n%{http_code}" -X POST \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -d "$PAYLOAD" \ - "${GITEA_URL}/api/v1/repos/${REPO}/releases" | \ - python3 -c "import sys,json; print(json.load(sys.stdin)['id'])") + "${GITEA_URL}/api/v1/repos/${REPO}/releases") + http_code=$(echo "$response" | tail -1) + body=$(echo "$response" | sed '$d') + + if [ "$http_code" -lt 200 ] || [ "$http_code" -ge 300 ]; then + echo "::error::Failed to create release (HTTP ${http_code}): ${body}" + exit 1 + fi + + release_id=$(echo "$body" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])") echo "Created release ${release_id}" # Upload assets for file in release/*; do filename=$(basename "$file") echo "Uploading ${filename}..." - curl -s -X POST \ + upload_resp=$(curl -s -w "\n%{http_code}" -X POST \ -H "Authorization: token ${GITEA_TOKEN}" \ -F "attachment=@${file}" \ - "${GITEA_URL}/api/v1/repos/${REPO}/releases/${release_id}/assets?name=${filename}" - echo " done." + "${GITEA_URL}/api/v1/repos/${REPO}/releases/${release_id}/assets?name=${filename}") + upload_code=$(echo "$upload_resp" | tail -1) + if [ "$upload_code" -lt 200 ] || [ "$upload_code" -ge 300 ]; then + echo "::warning::Failed to upload ${filename} (HTTP ${upload_code})" + else + echo " done." + fi done