name: Changelog on: issues: types: [closed,reopened] push: branches: - master - '[4-9]+.[0-9]+.x' - '[3-9]+.[3-9]+.x' pull_request: types: [opened, reopened, synchronize, labeled] pull_request_target: types: [opened, reopened, synchronize, labeled] workflow_dispatch: jobs: release_notes: permissions: contents: read runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Check if it has release drafter config file id: check_release_drafter run: | has_release_drafter=$([ -f .github/release-drafter.yml ] && echo "true" || echo "false") echo "has_release_drafter=${has_release_drafter}" >> $GITHUB_OUTPUT - name: Extract branch name id: extract_branch run: echo "value=${GITHUB_REF:11}" >> $GITHUB_OUTPUT # If it has release drafter: - uses: release-drafter/release-drafter@v6 if: steps.check_release_drafter.outputs.has_release_drafter == 'true' env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} # Otherwise: - name: Export Gradle Properties if: steps.check_release_drafter.outputs.has_release_drafter == 'false' uses: micronaut-projects/github-actions/export-gradle-properties@master - uses: micronaut-projects/github-actions/release-notes@master if: steps.check_release_drafter.outputs.has_release_drafter == 'false' id: release_notes with: token: ${{ secrets.GH_TOKEN }} - uses: ncipollo/release-action@v1 if: steps.check_release_drafter.outputs.has_release_drafter == 'false' && steps.release_notes.outputs.generated_changelog == 'true' with: allowUpdates: true commit: ${{ steps.release_notes.outputs.current_branch }} draft: true name: ${{ env.title }} ${{ steps.release_notes.outputs.next_version }} tag: v${{ steps.release_notes.outputs.next_version }} bodyFile: CHANGELOG.md token: ${{ secrets.GH_TOKEN }}