on: push: branches: - main pull_request: branches: - main jobs: prepare: runs-on: ubuntu-latest outputs: next_version: ${{ steps.versioning.outputs.next_version }} steps: - name: Checkout Repository uses: actions/checkout@v3 with: fetch-depth: 0 # Stelle sicher, dass alle Tags geholt werden - name: Calculate next version id: versioning run: | # Annahme: Versionstags folgen dem Format vMajor.Minor.Patch # Hole den letzten Versionstag LAST_VERSION_TAG=$(git tag --list 'v*' --sort=-v:refname | head -n 1) echo "Letzte Version: $LAST_VERSION_TAG" # Extrahiere die einzelnen Komponenten der Version if [[ $LAST_VERSION_TAG =~ v([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then MAJOR=${BASH_REMATCH[1]} MINOR=${BASH_REMATCH[2]} PATCH=${BASH_REMATCH[3]} else echo "Kein gültiger Versionstag gefunden. Standardwerte werden verwendet." MAJOR=0 MINOR=0 PATCH=0 fi # Inkrementiere die Patch-Version PATCH=$((PATCH + 1)) if [ "$PATCH" -gt 9 ]; then PATCH=0 MINOR=$((MINOR + 1)) if [ "$MINOR" -gt 9 ]; then MINOR=0 MAJOR=$((MAJOR + 1)) fi fi # Setze die nächste Version NEXT_VERSION="${MAJOR}.${MINOR}.${PATCH}" echo "Nächste Version: $NEXT_VERSION" echo "::set-output name=next_version::$NEXT_VERSION" publish: needs: prepare runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' cache: maven # Füge alle anderen Schritte deines aktuellen Workflows hier ein ... - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: v${{ needs.prepare.outputs.next_version }} release_name: ExtremeDemonList v${{ needs.prepare.outputs.next_version }} body: ${{ steps.get_commit_info.outputs.COMMIT_DESC }} draft: false prerelease: false # Füge alle anderen Schritte deines aktuellen Workflows hier ein ...