name: Server integrations on: push: branches: ['**'] paths: ['integrations/**', '.github/workflows/integrations.yml'] pull_request: paths: ['integrations/**', '.github/workflows/integrations.yml'] workflow_dispatch: workflow_call: inputs: version: type: string default: '0.1.0' permissions: contents: read jobs: paper: name: Paper and protocol tests runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v5 - uses: actions/setup-java@v5 with: distribution: temurin java-version: '21' - uses: gradle/actions/setup-gradle@v4 with: gradle-version: '8.10.2' - run: gradle -p integrations :common:test :paper:build -PreleaseVersion="${{ inputs.version || '0.1.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: ${{ matrix.loader }} / ${{ matrix.mc.version }} runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: loader: [fabric, forge] 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: actions/checkout@v5 - uses: actions/setup-java@v5 with: distribution: temurin java-version: ${{ matrix.mc.java }} - uses: gradle/actions/setup-gradle@v4 with: gradle-version: ${{ matrix.mc.gradle }} - run: gradle -p integrations -Ploader=${{ matrix.loader }} -PmcVersion=${{ matrix.mc.version }} -PreleaseVersion="${{ inputs.version || '0.1.0' }}" :${{ matrix.loader }}:build - name: Audit Fabric hooks during server bootstrap (no world startup) if: matrix.loader == 'fabric' run: gradle -p integrations -Ploader=fabric -PmcVersion=${{ matrix.mc.version }} -PreleaseVersion="${{ inputs.version || '0.1.0' }}" -PverifyMixins=true :fabric:runServer - uses: actions/upload-artifact@v4 with: name: server-${{ matrix.loader }}-${{ matrix.mc.version }} path: integrations/${{ matrix.loader }}/build/libs/scopenet-${{ matrix.loader }}-${{ matrix.mc.version }}-*.jar if-no-files-found: error