diff --git a/.github/workflows/integrations.yml b/.github/workflows/integrations.yml index 39b66ec..b0f505a 100644 --- a/.github/workflows/integrations.yml +++ b/.github/workflows/integrations.yml @@ -3,10 +3,17 @@ name: Server integrations on: push: branches: ['**'] - paths: ['integrations/**', '.github/workflows/integrations.yml'] + paths: + - 'integrations/**' + - '.github/workflows/integrations.yml' + pull_request: - paths: ['integrations/**', '.github/workflows/integrations.yml'] + paths: + - 'integrations/**' + - '.github/workflows/integrations.yml' + workflow_dispatch: + workflow_call: inputs: version: @@ -20,23 +27,41 @@ jobs: paper: name: Paper and protocol tests runs-on: ubuntu-24.04 + steps: - - uses: actions/checkout@v5 - - uses: actions/setup-java@v5 + - name: Checkout repository + uses: actions/checkout@v5 + + - name: Setup Java 21 + 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.4.0' }}" - - uses: actions/upload-artifact@v4 + + - name: Install Gradle 8.10.2 + run: | + curl -s "https://get.sdkman.io" | bash + source "$HOME/.sdkman/bin/sdkman-init.sh" + sdk install gradle 8.10.2 + gradle --version + + - name: Build Paper plugin and run tests + run: | + gradle -p integrations \ + :common:test \ + :paper:build \ + -PreleaseVersion="${{ inputs.version || '0.4.0' }}" + + - name: Upload Paper JAR + 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 + + - name: Upload integration test reports if: failure() + uses: actions/upload-artifact@v4 with: name: integration-test-reports path: integrations/common/build/reports/tests/ @@ -44,31 +69,73 @@ jobs: mods: name: ${{ matrix.loader }} / ${{ matrix.mc.version }} runs-on: ubuntu-24.04 + strategy: fail-fast: false matrix: - loader: [fabric, forge] + 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' } + - 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 + - name: Checkout repository + uses: actions/checkout@v5 + + - name: Setup Java + 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.4.0' }}" :${{ matrix.loader }}:build - - name: Audit Fabric hooks during server bootstrap (no world startup) + + - name: Install Gradle + run: | + curl -s "https://get.sdkman.io" | bash + source "$HOME/.sdkman/bin/sdkman-init.sh" + sdk install gradle ${{ matrix.mc.gradle }} + gradle --version + + - name: Build ${{ matrix.loader }} ${{ matrix.mc.version }} + run: | + gradle -p integrations \ + -Ploader=${{ matrix.loader }} \ + -PmcVersion=${{ matrix.mc.version }} \ + -PreleaseVersion="${{ inputs.version || '0.4.0' }}" \ + :${{ matrix.loader }}:build + + - name: Audit Fabric hooks during server bootstrap if: matrix.loader == 'fabric' - run: gradle -p integrations -Ploader=fabric -PmcVersion=${{ matrix.mc.version }} -PreleaseVersion="${{ inputs.version || '0.4.0' }}" -PverifyMixins=true :fabric:runServer - - uses: actions/upload-artifact@v4 + run: | + gradle -p integrations \ + -Ploader=fabric \ + -PmcVersion=${{ matrix.mc.version }} \ + -PreleaseVersion="${{ inputs.version || '0.4.0' }}" \ + -PverifyMixins=true \ + :fabric:runServer + + - name: Upload Mod JAR + 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 + if-no-files-found: error \ No newline at end of file