From 75cdfbad8d90dba7d4740ac193c1d11ba260138d Mon Sep 17 00:00:00 2001 From: bbassie <17990055+bbassie@users.noreply.github.com> Date: Fri, 30 Oct 2026 00:16:28 +0000 Subject: [PATCH] Split the test jobs in two halves The clusterioctl, plugin system and instance integration tests take about half of the test time, so they run on one runner and the rest of the tests on another, each half with its own controller and host. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/node.js.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 9a0508f6..32f9a0e5 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -34,11 +34,20 @@ jobs: # Supported factorio versions are latest stable and one minor version before stable (even if from a previous major) factorio-version: [1.1.110, 2.0.77, 2.1.17] - + + # The tests run in two halves of similar length on separate runners, + # the clusterioctl, plugin system and instance integration tests and the rest. + tests: [ctl, other] + # Coverage is performed on the older of the supported node versions include: - node-version: 22.x factorio-version: 2.1.17 + tests: ctl + coverage: true + - node-version: 22.x + factorio-version: 2.1.17 + tests: other coverage: true steps: @@ -51,10 +60,10 @@ jobs: run: wget -q -O factorio.tar.gz https://www.factorio.com/get-download/${{ matrix.factorio-version }}/headless/linux64 && tar -xf factorio.tar.gz && rm factorio.tar.gz - name: Run tests if: ${{ !matrix.coverage }} - run: pnpm test + run: pnpm test --grep "^(Integration of Clusterio (clusterioctl|plugin system)|Clusterio Instance) " ${{ matrix.tests == 'other' && '--invert' || '' }} - name: Run coverage if: ${{ matrix.coverage }} - run: pnpm run ci-cover + run: pnpm run ci-cover --grep "^(Integration of Clusterio (clusterioctl|plugin system)|Clusterio Instance) " ${{ matrix.tests == 'other' && '--invert' || '' }} - name: Upload coverage to Codecov if: ${{ matrix.coverage }} uses: codecov/codecov-action@v7 @@ -67,7 +76,7 @@ jobs: if: ${{ !cancelled() }} uses: actions/upload-artifact@v7 with: - name: logs-${{ matrix.node-version }}-${{ matrix.factorio-version }} + name: logs-${{ matrix.node-version }}-${{ matrix.factorio-version }}-${{ matrix.tests }} path: temp/test/logs version-compat: