From 287acb6885fb0e027a21d9a64d3105a73a42c6bd Mon Sep 17 00:00:00 2001 From: THEMPGUYAlt Date: Wed, 25 Jun 2025 15:41:52 -0400 Subject: [PATCH] Update build-and-release.yml --- .github/workflows/build-and-release.yml | 82 ++++++++++--------------- 1 file changed, 32 insertions(+), 50 deletions(-) diff --git a/.github/workflows/build-and-release.yml b/.github/workflows/build-and-release.yml index 5d34618..698ed1e 100644 --- a/.github/workflows/build-and-release.yml +++ b/.github/workflows/build-and-release.yml @@ -12,12 +12,9 @@ on: jobs: build: runs-on: ubuntu-latest - defaults: - run: - shell: bash steps: - - name: Checkout source + - name: Checkout code uses: actions/checkout@v4 - name: Set up fallback JDK 21 @@ -26,22 +23,14 @@ jobs: distribution: temurin java-version: 21 - - name: Install javap tools - run: sudo apt-get update && sudo apt-get install -y openjdk-21-jdk + - name: Install tools + run: sudo apt-get update && sudo apt-get install -y openjdk-21-jdk unzip - name: Create Maven settings (skip checksum validation) run: | mkdir -p .mvn cat > .mvn/settings.xml < - - - central - Maven Central - https://repo.maven.apache.org/maven2 - central - - no-checksums @@ -53,64 +42,57 @@ jobs: EOF + # ---------- Build Addons ---------- - name: Clone ViaLimbo run: git clone https://github.com/LOOHP/ViaLimbo.git external/ViaLimbo - - name: Resolve ViaLimbo dependencies - run: mvn -f external/ViaLimbo/pom.xml dependency:resolve -s .mvn/settings.xml || true - - - name: Detect Java version from class - id: detect-java - run: | - CLASS_FILE=$(find external/ViaLimbo -name "*.class" | head -n 1) - if [[ -f "$CLASS_FILE" ]]; then - MAJOR=$(javap -verbose "$CLASS_FILE" | grep "major version" | awk '{print $3}') - echo "Detected major version: $MAJOR" - if [[ "$MAJOR" -eq 61 ]]; then - echo "java_version=17" >> $GITHUB_OUTPUT - elif [[ "$MAJOR" -eq 65 ]]; then - echo "java_version=21" >> $GITHUB_OUTPUT - else - echo "java_version=21" >> $GITHUB_OUTPUT - fi - else - echo "java_version=21" >> $GITHUB_OUTPUT - fi - - - name: Setup Java for ViaLimbo - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{ steps.detect-java.outputs.java_version }} - - name: Build ViaLimbo run: | cd external/ViaLimbo mvn package -DskipTests -s ../../.mvn/settings.xml || echo "::warning::ViaLimbo build failed" continue-on-error: true - - name: Clone and Build Floodgate-Limbo + - name: Clone and Build FloodgateLimbo run: | git clone https://github.com/LOOHP/floodgate-limbo.git external/FloodgateLimbo cd external/FloodgateLimbo mvn package -DskipTests -s ../../.mvn/settings.xml || echo "::warning::FloodgateLimbo build failed" continue-on-error: true - - name: Set up JDK 21 for main project - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 21 - + # ---------- Build Main Project ---------- - name: Build Main Project run: mvn package -DskipTests -s .mvn/settings.xml || echo "::warning::Main project build failed" continue-on-error: true - - name: Create GitHub Release (if tagged) - if: startsWith(github.ref, 'refs/tags/') + # ---------- Detect Version ---------- + - name: Detect Minecraft version from JAR name + id: detect-version + run: | + FILE=$(find target -name "*.jar" | head -n 1) + echo "Found JAR: $FILE" + VERSION=$(echo "$FILE" | grep -oP '\d+\.\d+\.\d+') + echo "Detected version: $VERSION" + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "tag=release-$VERSION" >> $GITHUB_OUTPUT + + # ---------- Create Git Tag ---------- + - name: Auto-tag commit + if: github.ref == 'refs/heads/main' + run: | + git config user.name "github-actions" + git config user.email "github-actions@github.com" + git tag ${{ steps.detect-version.outputs.tag }} + git push origin ${{ steps.detect-version.outputs.tag }} + + # ---------- Create GitHub Release ---------- + - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: + tag_name: ${{ steps.detect-version.outputs.tag }} + name: Limbo Build ${{ steps.detect-version.outputs.version }} files: | target/*.jar external/ViaLimbo/target/*.jar external/FloodgateLimbo/target/*.jar + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}