name: Build Limbo Project and Add-ons on: push: branches: - main paths-ignore: - '**/README.md' - '**/readme.md' workflow_dispatch: jobs: build: runs-on: ubuntu-latest defaults: run: shell: bash steps: - name: Checkout source uses: actions/checkout@v4 - name: Set up fallback JDK 21 uses: actions/setup-java@v4 with: distribution: temurin java-version: 21 - name: Install javap tools run: sudo apt-get update && sudo apt-get install -y openjdk-21-jdk - 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 no-checksums EOF - 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 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 - 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/') uses: softprops/action-gh-release@v2 with: files: | target/*.jar external/ViaLimbo/target/*.jar external/FloodgateLimbo/target/*.jar