name: Release Build on: push: tags: - 'v*' jobs: build-and-release: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Build with Gradle run: sh gradlew build --no-daemon - name: Extract Changelog id: changelog run: | # Extract the latest version section from CHANGELOG.md if [ -f "docs/CHANGELOG.md" ]; then # Get content between first ## and second ## (or end of file) CHANGELOG=$(sed -n '/^## \[/,/^## \[/p' docs/CHANGELOG.md | sed '$d' | tail -n +2) if [ -z "$CHANGELOG" ]; then CHANGELOG=$(sed -n '/^## \[/,$p' docs/CHANGELOG.md | tail -n +2) fi echo "RELEASE_NOTES<> $GITHUB_OUTPUT echo "$CHANGELOG" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT else echo "RELEASE_NOTES=Release ${{ github.ref_name }}" >> $GITHUB_OUTPUT fi - name: Create Release uses: akkuman/gitea-release-action@v1 with: token: ${{ secrets.TOKEN }} files: build/libs/*.jar draft: false prerelease: false body: ${{ steps.changelog.outputs.RELEASE_NOTES }}