b0d8f57b6f
ci/woodpecker/release/release Pipeline failed
Generates release notes from merged branches since last tag and includes them in the release body via Gitea API. Reviewed-on: #4
43 lines
1.5 KiB
YAML
43 lines
1.5 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:
|
|
DRONECI_PASSWORD:
|
|
from_secret: DRONECI_PASSWORD
|
|
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')
|
|
RELEASE_ID=$(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}\"}" \
|
|
| grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
|
|
curl -sf -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:
|
|
kubernetes:
|
|
serviceAccountName: default
|
|
depends_on: [build]
|