diff --git a/.github/release-drafter.yml b/.github/release-drafter_extension.yml similarity index 100% rename from .github/release-drafter.yml rename to .github/release-drafter_extension.yml diff --git a/.github/release-drafter_github.yml b/.github/release-drafter_github.yml new file mode 100644 index 0000000..72cfb84 --- /dev/null +++ b/.github/release-drafter_github.yml @@ -0,0 +1,23 @@ +name-template: "Release $COMPLETE" +tag-template: "v$COMPLETE" +draft: false + +exclude: + pulls: true +exclude-labels: + - changelog-ignore + +categories: + - title: "Features" + labels: ["feature", "enhancement"] + - title: "Fixes" + labels: ["bug"] + - title: "Maintenance" + labels: ["chore", "refactor"] + +change-template: "- $TITLE [#$NUMBER]" + +template: | + ## Changes + + $CHANGES diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index 77fad19..2053e30 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -26,20 +26,32 @@ jobs: run: npm ci - name: Generate release notes - id: release_notes + id: release_notes_extension uses: release-drafter/release-drafter@v6 with: - config-name: release-drafter.yml + config-name: release-drafter_extension.yml env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Save release notes to file run: | - echo "${{ steps.release_notes.outputs.body }}" > RELEASE_NOTES.md + echo "${{ steps.release_notes_extension.outputs.body }}" > RELEASE_NOTES.md - name: Run build script run: npm run release + + - name: Generate release notes + id: release_notes_github + uses: release-drafter/release-drafter@v6 + with: + config-name: release-drafter_github.yml + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Save release notes to file + run: | + echo "${{ steps.release_notes_github.outputs.body }}" > RELEASE_NOTES.md + - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: @@ -49,3 +61,20 @@ jobs: body_path: "RELEASE_NOTES.md" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Delete draft release via API # workaround: remove leftover draft by release-drafter + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPO: ${{ github.repository }} + run: | + drafts=$(curl -s -H "Authorization: token $GITHUB_TOKEN" \ + https://api.github.com/repos/$REPO/releases | jq '.[] | select(.draft == true)') + + if [ -n "$drafts" ]; then + id=$(echo "$drafts" | jq -r '.id') + curl -s -X DELETE -H "Authorization: token $GITHUB_TOKEN" \ + https://api.github.com/repos/$REPO/releases/$id + echo "Deleted draft release with ID: $id" + else + echo "No draft releases found" + fi