From 6c46cc09bcd2d012f518699f7cb555df6f36e43d Mon Sep 17 00:00:00 2001 From: g_it Date: Thu, 9 Apr 2026 00:54:07 +0200 Subject: [PATCH] Add draft releases workflow. --- .forgejo/workflows/release-notes.yml | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .forgejo/workflows/release-notes.yml diff --git a/.forgejo/workflows/release-notes.yml b/.forgejo/workflows/release-notes.yml new file mode 100644 index 0000000..6baba93 --- /dev/null +++ b/.forgejo/workflows/release-notes.yml @@ -0,0 +1,42 @@ +name: Create Draft Release Notes + +on: + push: + tags: + - "v*" + +jobs: + create-release: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + run: | + git clone --depth 1 https://token:${{ secrets.ACTIONS_TOKEN }}@gugulet.hu/technical/git/g_it/site.git . + + - name: Generate release notes + id: notes + run: | + CURRENT_TAG=$(git describe --tags --exact-match) + PREVIOUS_TAG=$(git tag --sort=-version:refname --list | awk "NR>1 {print; exit}") + + if [ -z "$PREVIOUS_TAG" ]; then + CHANGELOG=$(git log --pretty=format:"- %s" --no-decorate) + else + CHANGELOG=$(git log ${PREVIOUS_TAG}..${CURRENT_TAG} --pretty=format:"- %s" --no-decorate) + fi + + echo "changelog=$CHANGELOG" >> $GITHUB_OUTPUT + + - name: Create release via Forgejo API + run: | + curl -X POST https://${{ gitea.server }}/api/v1/repos/${{ gitea.repository }}/releases \ + -H "Authorization: token ${{ secrets.ACTIONS_TOKEN }}" \ + -H "Content-Type: application/json" \ + -d '{ + "tag_name": "${{ gitea.ref_name }}", + "name": "Release ${{ gitea.ref_name }}", + "body": "## Changes\n\n${{ steps.notes.outputs.changelog }}", + "draft": true, + "prerelease": false + }'