name: build on: [ pull_request, push ] jobs: build: strategy: matrix: java: [ 21 # Current Java LTS & minimum supported by Minecraft ] os: [ ubuntu-latest ] runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Validate Gradle Wrapper uses: gradle/actions/wrapper-validation@v3 - name: Gradle Cache uses: actions/cache@v4 with: path: | ~/.gradle/caches ~/.gradle/wrapper .gradle/loom-cache build/ key: ${{ runner.os }}-jdk${{ matrix.java }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle-wrapper.properties', '.github/workflows/build.yml') }} - name: Setup JDK ${{ matrix.java }} uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.java }} - name: Make Gradle Wrapper Executable if: ${{ runner.os != 'Windows' }} run: chmod +x ./gradlew - name: Build # doesn't actually publish, as no secrets are passed in, just makes sure that publishing works run: ./gradlew publish --no-daemon - name: Capture Build Artifacts if: ${{ runner.os == 'Linux' && matrix.java == '17' }} uses: actions/upload-artifact@v4 with: name: Artifacts path: | common/build/libs/ fabric/build/libs/ forge/build/libs/