name: Build and Release Minecraft Plugin on: push: branches: - testing jobs: build-and-release: steps: # Repository auschecken - name: Checkout Repository uses: actions/checkout@v3 # Java 17 installieren - name: Set up Java 17 uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' # Maven installieren - name: Install Maven run: | sudo apt-get update sudo apt-get install -y maven # Plugin-Version aus plugin.yml auslesen - name: Extract Plugin Version id: extract_version run: | VERSION=$(grep '^version:' src/main/resources/plugin.yml | awk '{print $2}') echo "PLUGIN_VERSION=$VERSION" >> $GITHUB_ENV # Projekt mit Maven bauen - name: Build with Maven run: mvn clean package # Prüfen, ob Tags vorhanden sind und Changelog erstellen - name: Generate Changelog from Commits id: changelog run: | # Prüfen, ob ein Tag vorhanden ist LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0") echo "Last Tag: $LAST_TAG" # Changelog aus den Commits seit dem letzten Tag erstellen CHANGES=$(git log $LAST_TAG..HEAD --oneline --no-merges) echo "CHANGES=$CHANGES" >> $GITHUB_ENV echo "$CHANGES" # JAR-Datei umbenennen - name: Rename JAR File run: | mv target/*.jar target/BetterMinecraft-${{ env.PLUGIN_VERSION }}-b.jar # Artefakt hochladen - name: Upload Artifact uses: actions/upload-artifact@v3 with: name: BetterMinecraft-${{ env.PLUGIN_VERSION }}-b.jar path: target/BetterMinecraft-${{ env.PLUGIN_VERSION }}-b.jar # Release erstellen mit Changelog - name: Create Release uses: softprops/action-gh-release@v1 with: files: target/BetterMinecraft-${{ env.PLUGIN_VERSION }}-b.jar tag_name: ${{ env.PLUGIN_VERSION }} release_name: Release ${{ env.PLUGIN_VERSION }} draft: false prerelease: true body: | ## Changelog ${{ steps.changelog.outputs.CHANGES }}