diff --git a/.forgejo/workflows/build-release.yml b/.forgejo/workflows/build-release.yml new file mode 100644 index 0000000..025bd0c --- /dev/null +++ b/.forgejo/workflows/build-release.yml @@ -0,0 +1,85 @@ +name: Build & Release + +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: https://code.forgejo.org/actions/checkout@v4 + + - name: Set up JDK 21 + uses: https://code.forgejo.org/actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '21' + cache: 'maven' + + - name: Build with Maven + run: mvn clean package + + - name: Upload plugin artifact + uses: https://code.forgejo.org/actions/upload-artifact@v3 + with: + name: velocity-plugin + path: target/*.jar + + tag: + needs: build + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: https://code.forgejo.org/actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Get latest tag + id: latest_tag + run: echo "TAG=$(git describe --tags --match 'V1.*' --abbrev=0 || echo 'V1.1.0')" >> $GITHUB_ENV + + - name: Bump patch version + id: bump_version + run: | + latest_tag="${{ env.TAG }}" + new_tag=$(echo $latest_tag | awk -F. '{$NF+=1; OFS="."; print $0}') + echo "NEW_TAG=$new_tag" >> $GITHUB_ENV + + - name: Generate changelog from commits + id: changelog + run: | + if git rev-parse ${{ env.TAG }} >/dev/null 2>&1; then + changes=$(git log --pretty=format:"- %s" ${{ env.TAG }}..HEAD) + else + changes=$(git log --pretty=format:"- %s") + fi + echo "CHANGELOG=$changes" >> $GITHUB_ENV + + - name: Create new tag + run: | + git config --global user.name "forgejo-actions[bot]" + git config --global user.email "forgejo-actions@users.noreply.forgejo.org" + git tag -a ${{ env.NEW_TAG }} -m "Automated release ${{ env.NEW_TAG }}" + git push origin ${{ env.NEW_TAG }} + + release: + needs: tag + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: https://code.forgejo.org/actions/checkout@v4 + + - name: Download built JAR + uses: https://code.forgejo.org/actions/download-artifact@v3 + with: + name: velocity-plugin + path: release/ + + - name: Create Forgejo Release + uses: https://code.forgejo.org/actions/release@v1 + with: + files: release/*.jar + tag_name: ${{ env.NEW_TAG }} + name: "Melon Proxy ${{ env.NEW_TAG }}" + body: "${{ env.CHANGELOG }}"