From 48c3ca71ea5822c4304ec74951970dbefd5026eb Mon Sep 17 00:00:00 2001 From: Romain Beaumont Date: Thu, 28 Dec 2023 00:38:29 +0100 Subject: [PATCH] Improve CI per version setup (#3256) - use +v to select the version properly (eg don't run all 1.19.x for 1.19) - run on all tested versions specified in version.js --- .github/workflows/ci.yml | 44 +++++++++++++++++++++------------------- lib/version.js | 2 +- test/externalTest.js | 2 +- test/internalTest.js | 2 +- 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 346d890f8..dbcffcf15 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,42 +17,44 @@ jobs: with: node-version: 18.x - 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 18.x + uses: actions/setup-node@v1.4.4 + with: + node-version: 18.x + - id: set-matrix + run: | + node -e " + const testedVersions = require('./lib/version').testedVersions; + console.log('matrix='+JSON.stringify({'include': testedVersions.map(mcVersion => ({mcVersion}))})) + " >> $GITHUB_OUTPUT MinecraftServer: + needs: PrepareSupportedVersions runs-on: ubuntu-latest strategy: - matrix: - javaVersion: [1.8] - mcVersion: ['1.8.8', '1.9.4', '1.10.2', '1.11.2', '1.12.2', '1.13.2', '1.14.4', '1.15.2', '1.16.5'] - include: - - javaVersion: 16 - mcVersion: '1.17.1' - - javaVersion: 17 - mcVersion: '1.18.2' - - javaVersion: 17 - mcVersion: '1.19' - - javaVersion: 17 - mcVersion: '1.19.2' - - javaVersion: 17 - mcVersion: '1.19.3' - - javaVersion: 17 - mcVersion: '1.19.4' - - javaVersion: 17 - mcVersion: '1.20.1' + matrix: ${{fromJson(needs.PrepareSupportedVersions.outputs.matrix)}} fail-fast: false steps: - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js 18.x uses: actions/setup-node@v1.4.4 with: node-version: 18.x - name: Setup Java JDK uses: actions/setup-java@v1.4.3 with: - java-version: ${{ matrix.javaVersion }} + java-version: 17 java-package: jre - name: Install Dependencies run: npm install - name: Start Tests - run: npm run mocha_test -- -g ${{ matrix.mcVersion }} + run: npm run mocha_test -- -g ${{ matrix.mcVersion }}v diff --git a/lib/version.js b/lib/version.js index ff89aed2f..14ec90d21 100644 --- a/lib/version.js +++ b/lib/version.js @@ -1,4 +1,4 @@ module.exports = { supportedVersions: ['1.8', '1.9', '1.10', '1.11', '1.12', '1.13', '1.14', '1.15', '1.16', '1.17', '1.18', '1.19', '1.20'], testedVersions: ['1.8.8', '1.9.4', '1.10.2', '1.11.2', '1.12.2', '1.13.2', '1.14.4', '1.15.2', '1.16.5', '1.17.1', '1.18.2', '1.19', '1.19.2', '1.19.3', '1.19.4', '1.20.1'] -} // when updating testedVersions, make sure to update CI.yml +} diff --git a/test/externalTest.js b/test/externalTest.js index 76f0fcee8..91997f5b5 100644 --- a/test/externalTest.js +++ b/test/externalTest.js @@ -44,7 +44,7 @@ for (const supportedVersion of mineflayer.testedVersions) { console.log(line) }) - describe(`mineflayer_external ${version.minecraftVersion}`, function () { + describe(`mineflayer_external ${supportedVersion}v`, function () { let bot this.timeout(10 * 60 * 1000) before(async function () { diff --git a/test/internalTest.js b/test/internalTest.js index 638fc4de9..913b8e35b 100644 --- a/test/internalTest.js +++ b/test/internalTest.js @@ -39,7 +39,7 @@ for (const supportedVersion of mineflayer.testedVersions) { } } - describe(`mineflayer_internal ${version.minecraftVersion}`, function () { + describe(`mineflayer_internal ${supportedVersion}v`, function () { this.timeout(10 * 1000) let bot let server