name: Build and Release JAR on: push: branches: - '**' paths-ignore: - 'README.md' jobs: build-and-release: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout source code uses: actions/checkout@v4 - name: Get Java version from pom.xml or fallback to 21 id: java run: | echo "Attempting to extract Java version from pom.xml..." version=$(mvn help:evaluate -Dexpression=maven.compiler.source -q -DforceStdout) if [[ -z "$version" || "$version" == *"[INFO]"* || "$version" == *"BUILD FAILURE"* ]]; then version=$(mvn help:evaluate -Dexpression=java.version -q -DforceStdout) fi if [[ "$version" == "1.8" ]]; then version="8" fi if [[ -z "$version" || "$version" == *"[INFO]"* || "$version" == *"BUILD FAILURE"* ]]; then version="21" echo "Falling back to Java version $version" fi echo "java=$version" >> $GITHUB_OUTPUT - name: Set up JDK uses: actions/setup-java@v4 with: java-version: ${{ steps.java.outputs.java }} distribution: 'temurin' - name: Build with Maven run: mvn package -DskipTests - name: Get version from pom.xml id: get_version run: | version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) echo "version=$version" >> $GITHUB_OUTPUT - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: tag_name: v${{ steps.get_version.outputs.version }} name: Release v${{ steps.get_version.outputs.version }} generate_release_notes: true - name: Upload JAR to release uses: softprops/action-gh-release@v2 with: files: target/*.jar