fix: surface release API errors in woodpecker pipeline
Capture and print the full Gitea API response before parsing the release ID, and fail explicitly if the ID is empty so the root cause is visible in CI logs instead of silently producing a malformed asset upload URL. 💘 Generated with Crush Assisted-by: Claude Sonnet 4.6 via Crush <crush@charm.land>
This commit is contained in:
@@ -28,11 +28,17 @@ steps:
|
|||||||
NOTES=$(git log --merges --pretty=format:"- %s")
|
NOTES=$(git log --merges --pretty=format:"- %s")
|
||||||
fi
|
fi
|
||||||
BODY=$(printf '%s' "$NOTES" | sed 's/"/\\"/g; s/$/\\n/' | tr -d '\n')
|
BODY=$(printf '%s' "$NOTES" | sed 's/"/\\"/g; s/$/\\n/' | tr -d '\n')
|
||||||
RELEASE_ID=$(curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases" \
|
RELEASE_RESPONSE=$(curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases" \
|
||||||
-u "droneci:$DRONECI_PASSWORD" \
|
-u "droneci:$DRONECI_PASSWORD" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"name\":\"${CI_COMMIT_TAG}\",\"body\":\"${BODY}\"}" \
|
-d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"name\":\"${CI_COMMIT_TAG}\",\"body\":\"${BODY}\"}")
|
||||||
| grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
|
echo "Release API response: ${RELEASE_RESPONSE}"
|
||||||
|
RELEASE_ID=$(echo "${RELEASE_RESPONSE}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
|
||||||
|
if [ -z "$RELEASE_ID" ]; then
|
||||||
|
echo "ERROR: failed to obtain release ID" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Release ID: ${RELEASE_ID}"
|
||||||
curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}/assets" \
|
curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}/assets" \
|
||||||
-u "droneci:$DRONECI_PASSWORD" \
|
-u "droneci:$DRONECI_PASSWORD" \
|
||||||
-F "attachment=@node-lookup"
|
-F "attachment=@node-lookup"
|
||||||
|
|||||||
Reference in New Issue
Block a user