name: Build on: [push, pull_request, merge_group] jobs: build: strategy: matrix: java: [21-ubuntu] runs-on: ubuntu-22.04 container: image: mcr.microsoft.com/openjdk/jdk:${{ matrix.java }} options: --user root steps: - run: apt update && apt install git -y && git --version - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: gradle/wrapper-validation-action@v2 - run: ./gradlew check build publishToMavenLocal --stacktrace - uses: Juuxel/publish-checkstyle-report@v1 if: ${{ failure() }} with: reports: | **/build/reports/checkstyle/*.xml - uses: actions/upload-artifact@v4 with: name: Artifacts ${{ matrix.java }} path: | build/libs/ ./*/build/libs/ build/publishMods/ - uses: actions/upload-artifact@v4 with: name: Maven Local ${{ matrix.java }} path: /root/.m2/repository/net/fabricmc/ client_test: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '21' - name: Run Auto test Client uses: modmuss50/xvfb-action@v1 with: run: ./gradlew runProductionAutoTestClient --stacktrace --warning-mode=fail - uses: actions/upload-artifact@v4 if: always() with: name: Test Screenshots path: run/screenshots server_test: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '21' - run: mkdir run && echo "eula=true" >> run/eula.txt - run: ./gradlew runProductionAutoTestServer --stacktrace --warning-mode=fail check_resources: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-java@v4 with: distribution: 'microsoft' java-version: '21' - run: ./gradlew generateResources --stacktrace --warning-mode=fail - run: if [ -n "$(git status --porcelain)" ]; then exit 1; fi