2 Commits

Author SHA1 Message Date
unkinben 498fe0ab25 Add merged branch release notes to Gitea release body
Generates release notes from merged branches since last tag and
includes them in the release body via Gitea API.

💘 Generated with Crush

Assisted-by: Claude Sonnet 4.6 via Crush <crush@charm.land>
2026-03-25 19:42:13 +11:00
unkinben b29418d1b5 Replace gitea-release plugin with curl-based release upload
ci/woodpecker/pr/lint Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/unit-tests Pipeline was successful
Uses basic auth (droneci user) and Gitea API directly to create
the release and upload the binary asset.

💘 Generated with Crush

Assisted-by: Claude Sonnet 4.6 via Crush <crush@charm.land>
2026-03-25 19:36:44 +11:00
+18 -7
View File
@@ -15,16 +15,27 @@ steps:
depends_on: [test] depends_on: [test]
- name: release - name: release
image: woodpeckerci/plugin-gitea-release image: git.unkin.net/unkin/almalinux9-base:20260325
settings:
api_key:
from_secret: GITEA_TOKEN
base_url: https://git.unkin.net
files: node-lookup
title: ${CI_COMMIT_TAG}
environment: environment:
DRONECI_PASSWORD: DRONECI_PASSWORD:
from_secret: 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: backend_options:
kubernetes: kubernetes:
serviceAccountName: default serviceAccountName: default