| name: Release |
| |
| on: |
| push: |
| tags: |
| - 'v*' |
| |
| jobs: |
| release: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Set up JDK 21 |
| uses: actions/setup-java@v4 |
| with: |
| distribution: 'temurin' |
| java-version: '21' |
| - name: Build with Gradle |
| run: ./gradlew build --no-daemon |
| - name: Get version and pre-release status |
| id: get_version |
| run: | |
| TAG_NAME=${GITHUB_REF#refs/tags/} |
| echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT |
| if [[ "$TAG_NAME" =~ (alpha|beta|rc) ]]; then |
| echo "prerelease=true" >> $GITHUB_OUTPUT |
| else |
| echo "prerelease=false" >> $GITHUB_OUTPUT |
| fi |
| - name: "Build Changelog" |
| id: build_changelog |
| uses: mikepenz/release-changelog-builder-action@v5 |
| with: |
| configurationJson: | |
| { |
| "template": "#{{CHANGELOG}}", |
| "categories": [ |
| { |
| "title": "## 🚀 Features", |
| "labels": ["feature", "enhancement"] |
| }, |
| { |
| "title": "## 🐛 Fixes", |
| "labels": ["fix", "bug"] |
| }, |
| { |
| "title": "## 📦 Other", |
| "labels": [] |
| } |
| ], |
| "ignore_labels": [ |
| "skip-changelog" |
| ], |
| "fetch_via_commits": true, |
| "fetch_reviewers": false, |
| "fetch_release_information": true, |
| "fetch_reviews": false, |
| "commit_mode": true |
| } |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| |
| - name: Create Release |
| uses: softprops/action-gh-release@v2 |
| with: |
| body: ${{ steps.build_changelog.outputs.changelog }} |
| tag_name: ${{ steps.get_version.outputs.tag_name }} |
| name: Release ${{ steps.get_version.outputs.tag_name }} |
| prerelease: ${{ steps.get_version.outputs.prerelease }} |
| files: | |
| app/build/libs/*.jar |
| build/bin/* |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |