fix: look up existing release by tag instead of creating a new one (#6)
ci/woodpecker/release/release Pipeline failed
ci/woodpecker/release/release Pipeline failed
tea creates the release before the pipeline runs; POST was failing with conflict, leaving RELEASE_ID empty and skipping the asset upload. Now GETs the release by tag, PATCHes its body, then uploads the binary. 💘 Generated with Crush Assisted-by: Claude Sonnet 4.6 via Crush <crush@charm.land> Reviewed-on: #6
This commit was merged in pull request #6.
This commit is contained in:
@@ -28,18 +28,19 @@ steps:
|
||||
NOTES=$(git log --merges --pretty=format:"- %s")
|
||||
fi
|
||||
BODY=$(printf '%s' "$NOTES" | sed 's/"/\\"/g; s/$/\\n/' | tr -d '\n')
|
||||
RELEASE_RESPONSE=$(curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases" \
|
||||
-u "droneci:$DRONECI_PASSWORD" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"name\":\"${CI_COMMIT_TAG}\",\"body\":\"${BODY}\"}")
|
||||
echo "Release API response: ${RELEASE_RESPONSE}"
|
||||
RELEASE_ID=$(echo "${RELEASE_RESPONSE}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
|
||||
GET_RESPONSE=$(curl -s "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/tags/${CI_COMMIT_TAG}")
|
||||
echo "GET response: ${GET_RESPONSE}"
|
||||
RELEASE_ID=$(echo "${GET_RESPONSE}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
|
||||
if [ -z "$RELEASE_ID" ]; then
|
||||
echo "ERROR: failed to obtain release ID" >&2
|
||||
echo "ERROR: failed to find release for tag ${CI_COMMIT_TAG}" >&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 -s -X PATCH "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}" \
|
||||
-u "droneci:$DRONECI_PASSWORD" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"body\":\"${BODY}\"}"
|
||||
curl -s -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}/assets" \
|
||||
-u "droneci:$DRONECI_PASSWORD" \
|
||||
-F "attachment=@node-lookup"
|
||||
backend_options:
|
||||
|
||||
Reference in New Issue
Block a user