name: Server integrations on: push: branches: ['**'] paths: ['integrations/**', '.gitea/workflows/integrations.yml'] pull_request: paths: ['integrations/**', '.gitea/workflows/integrations.yml'] workflow_dispatch: workflow_call: inputs: version: type: string default: '0.5.0' permissions: contents: read jobs: paper: runs-on: ubuntu-latest steps: - uses: builtin:checkout - uses: actions/setup-java@v4 with: distribution: temurin java-version: '21' - name: Verify integration runner run: | set -eu test "$(uname -s)" = Linux command -v java java -version 2>&1 | grep -q '21\.' || { echo 'Paper needs Java 21'; exit 1; } - uses: gradle/actions/setup-gradle@v4 with: gradle-version: '8.10.2' - run: gradle -p integrations :common:test :paper:build -PreleaseVersion="${{ inputs.version || '0.5.0' }}" - uses: actions/upload-artifact@v4 with: name: server-paper path: integrations/paper/build/libs/scopenet-paper-*.jar if-no-files-found: error - uses: actions/upload-artifact@v4 if: failure() with: name: integration-test-reports path: integrations/common/build/reports/tests/ mods: name: Fabric and Forge / ${{ matrix.mc.version }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: mc: - { version: '1.20.1', java: '21', gradle: '8.10.2' } - { version: '1.21.1', java: '21', gradle: '8.10.2' } - { version: '26.1.2', java: '25', gradle: '9.6.0' } - { version: '26.2', java: '25', gradle: '9.6.0' } - { version: '26.3', java: '25', gradle: '9.6.0' } steps: - uses: builtin:checkout - uses: actions/setup-java@v4 with: distribution: temurin java-version: ${{ matrix.mc.java }} - name: Verify integration runner run: | set -eu test "$(uname -s)" = Linux command -v java java -version 2>&1 | grep -q '${{ matrix.mc.java }}\.' || { echo 'Wrong Java version for this matrix entry'; exit 1; } - uses: gradle/actions/setup-gradle@v4 with: gradle-version: ${{ matrix.mc.gradle }} - name: Build both loaders run: | for loader in fabric forge; do gradle -p integrations -Ploader="$loader" -PmcVersion=${{ matrix.mc.version }} -PreleaseVersion="${{ inputs.version || '0.5.0' }}" :"$loader":build done - name: Audit Fabric startup hooks run: gradle -p integrations -Ploader=fabric -PmcVersion=${{ matrix.mc.version }} -PreleaseVersion="${{ inputs.version || '0.5.0' }}" -PverifyMixins=true :fabric:runServer - uses: actions/upload-artifact@v4 with: name: server-mods-${{ matrix.mc.version }} path: | integrations/fabric/build/libs/scopenet-fabric-${{ matrix.mc.version }}-*.jar integrations/forge/build/libs/scopenet-forge-${{ matrix.mc.version }}-*.jar if-no-files-found: error