Soak test: verify CI reliability (DO NOT MERGE) #4056
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| jobs: | |
| Lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Use Node.js 22.x | |
| uses: actions/setup-node@v1.4.4 | |
| with: | |
| node-version: 24 | |
| - run: npm i && npm run lint | |
| PrepareSupportedVersions: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| matrix: ${{ steps.set-matrix.outputs.matrix }} | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Use Node.js 22.x | |
| uses: actions/setup-node@v1.4.4 | |
| with: | |
| node-version: 24 | |
| - id: set-matrix | |
| run: | | |
| node -e " | |
| const v = require('./lib/version').testedVersions; | |
| const groups = []; | |
| const SIZE = 4; | |
| for (let i = 0; i < v.length; i += SIZE) { | |
| groups.push({ versions: v.slice(i, i + SIZE).join(' ') }); | |
| } | |
| console.log('matrix='+JSON.stringify({'include': groups})) | |
| " >> $GITHUB_OUTPUT | |
| MinecraftServer: | |
| needs: PrepareSupportedVersions | |
| runs-on: ubuntu-latest | |
| name: MC ${{ matrix.versions }} | |
| strategy: | |
| matrix: ${{ fromJson(needs.PrepareSupportedVersions.outputs.matrix) }} | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v2 | |
| - name: Use Node.js 22.x | |
| uses: actions/setup-node@v1.4.4 | |
| with: | |
| node-version: 24 | |
| - name: Setup Java JDK | |
| uses: actions/setup-java@v1.4.3 | |
| with: | |
| java-version: 21 | |
| java-package: jre | |
| - name: Install Dependencies | |
| run: npm install | |
| - name: Start Tests | |
| run: | | |
| exit_code=0 | |
| pids="" | |
| for v in ${{ matrix.versions }}; do | |
| npm run mocha_test -- --retries 3 -g "${v}v" > "test-${v}.log" 2>&1 & | |
| pids="$pids $!" | |
| done | |
| for pid in $pids; do | |
| wait $pid || exit_code=$? | |
| done | |
| # Print logs sequentially with clear headers | |
| for v in ${{ matrix.versions }}; do | |
| echo "" | |
| echo "==========================================" | |
| echo " Results for Minecraft ${v}" | |
| echo "==========================================" | |
| cat "test-${v}.log" | |
| done | |
| exit $exit_code |