6d7703c3f2
ci/woodpecker/release/release Pipeline failed
droneci user lacks write access; switch to token-based auth header. 💘 Generated with Crush Assisted-by: Claude Sonnet 4.6 via Crush <crush@charm.land> Reviewed-on: #7
50 lines
1.8 KiB
YAML
50 lines
1.8 KiB
YAML
when:
|
|
- event: release
|
|
|
|
steps:
|
|
- name: test
|
|
image: golang:latest
|
|
commands:
|
|
- go test ./...
|
|
|
|
- name: build
|
|
image: golang:latest
|
|
commands:
|
|
- VERSION=${CI_COMMIT_TAG}
|
|
- go build -ldflags="-s -w -X main.version=${VERSION}" -o node-lookup ./...
|
|
depends_on: [test]
|
|
|
|
- name: release
|
|
image: git.unkin.net/unkin/almalinux9-base:20260325
|
|
environment:
|
|
RELEASER_TOKEN:
|
|
from_secret: RELEASER_TOKEN
|
|
commands:
|
|
- |
|
|
PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
|
|
if [ -n "$PREV_TAG" ]; then
|
|
NOTES=$(git log "${PREV_TAG}..${CI_COMMIT_TAG}" --merges --pretty=format:"- %s")
|
|
else
|
|
NOTES=$(git log --merges --pretty=format:"- %s")
|
|
fi
|
|
BODY=$(printf '%s' "$NOTES" | sed 's/"/\\"/g; s/$/\\n/' | tr -d '\n')
|
|
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=$(printf '%s' "${GET_RESPONSE}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
|
|
if [ -z "$RELEASE_ID" ]; then
|
|
echo "ERROR: failed to find release for tag ${CI_COMMIT_TAG}" >&2
|
|
exit 1
|
|
fi
|
|
echo "Release ID: ${RELEASE_ID}"
|
|
curl -s -X PATCH "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}" \
|
|
-H "Authorization: token ${RELEASER_TOKEN}" \
|
|
-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" \
|
|
-H "Authorization: token ${RELEASER_TOKEN}" \
|
|
-F "attachment=@node-lookup"
|
|
backend_options:
|
|
kubernetes:
|
|
serviceAccountName: default
|
|
depends_on: [build]
|