Илья Глазунов 35c3b1d4fc
All checks were successful
Build and Release / build (push) Successful in 2m4s
Update version to 1.0.2-alpha in build.gradle.kts and enhance release workflow in release.yml
2025-12-22 20:39:18 +03:00

94 lines
2.8 KiB
YAML

name: Build and Release
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- name: Get version from tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Find JAR file
id: find_jar
run: |
JAR_FILE=$(find build/libs -name "*.jar" ! -name "*-sources.jar" ! -name "*-javadoc.jar" | head -1)
echo "JAR_PATH=$JAR_FILE" >> $GITHUB_OUTPUT
echo "JAR_NAME=$(basename $JAR_FILE)" >> $GITHUB_OUTPUT
- name: Create Draft Release
run: |
VERSION="${{ steps.get_version.outputs.VERSION }}"
RELEASE_BODY="## Release ${VERSION}
### What's New
- Feature 1
- Feature 2
### Bug Fixes
- Fix 1
- Fix 2
### Changes
- Change 1
- Change 2
### Breaking Changes
- None
### Installation
1. Download the JAR file from the assets below
2. Place it in your server's \`plugins\` folder
3. Restart the server
### Requirements
- Minecraft Server with PaperMC: 1.21.11
- Java: 21+"
# Create draft release
RESPONSE=$(curl -s -X POST \
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
-H "Content-Type: application/json" \
"${{ github.server_url }}/api/v1/repos/${{ github.repository }}/releases" \
-d "{
\"tag_name\": \"${VERSION}\",
\"name\": \"Release ${VERSION}\",
\"body\": $(echo "$RELEASE_BODY" | jq -Rs .),
\"draft\": true,
\"prerelease\": false
}")
RELEASE_ID=$(echo "$RESPONSE" | jq -r '.id')
echo "Created release with ID: $RELEASE_ID"
echo "RELEASE_ID=$RELEASE_ID" >> $GITHUB_ENV
- name: Upload JAR to Release
run: |
curl -s -X POST \
-H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
-H "Content-Type: application/java-archive" \
"${{ github.server_url }}/api/v1/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }}/assets?name=${{ steps.find_jar.outputs.JAR_NAME }}" \
--data-binary @"${{ steps.find_jar.outputs.JAR_PATH }}"
echo "Uploaded ${{ steps.find_jar.outputs.JAR_NAME }} to release"