LOOHP-Limbo/.github/workflows/build-and-release.yml

62 lines
1.8 KiB
YAML

name: Build and Release JAR
on:
push:
branches:
- '**'
paths-ignore:
- 'README.md'
jobs:
build-and-release:
runs-on: ubuntu-latest
permissions:
contents: write # Required for creating releases
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Get Java version from pom.xml or fallback to 22
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 [[ -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
id: create_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