From 5c019e626aa5fa82f7e8973285efefde010e35af Mon Sep 17 00:00:00 2001 From: Claude Code Date: Mon, 6 Oct 2025 07:44:19 +0000 Subject: [PATCH 1/4] Add multi-version Node.js testing to CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Configure GitHub Actions to test on multiple Node.js versions: - Node.js 16.x (EOL but still in use) - Node.js 18.x (LTS) - Node.js 20.x (LTS) - Node.js 22.x (Current) Additional improvements: - Add browser tests to CI pipeline - Set fail-fast: false to test all versions - Add descriptive step names 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/websocket-tests.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/websocket-tests.yml b/.github/workflows/websocket-tests.yml index fd022cae..2553eb62 100644 --- a/.github/workflows/websocket-tests.yml +++ b/.github/workflows/websocket-tests.yml @@ -3,6 +3,11 @@ on: [pull_request] jobs: test: runs-on: ubuntu-latest + strategy: + matrix: + node-version: [16.x, 18.x, 20.x, 22.x] + fail-fast: false + name: Test on Node.js ${{ matrix.node-version }} steps: - uses: actions/checkout@v2 @@ -12,14 +17,20 @@ jobs: - uses: actions/setup-node@v3 with: - node-version: 18.x + node-version: ${{ matrix.node-version }} cache: 'pnpm' - - run: pnpm install + - name: Install dependencies + run: pnpm install - - run: pnpm run lint + - name: Run lint + run: pnpm run lint - - run: pnpm run test + - name: Run unit tests + run: pnpm run test + + - name: Run browser tests (Chromium only) + run: pnpm run test:browser:chromium - name: Pull Autobahn Test Suite Docker image run: docker pull crossbario/autobahn-testsuite From de4803489e375e9f2467b6ad76cd7b58c08b0eab Mon Sep 17 00:00:00 2001 From: Claude Code Date: Mon, 6 Oct 2025 07:46:40 +0000 Subject: [PATCH 2/4] Fix CI: Install Playwright browsers before running tests --- .github/workflows/websocket-tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/websocket-tests.yml b/.github/workflows/websocket-tests.yml index 2553eb62..80abc514 100644 --- a/.github/workflows/websocket-tests.yml +++ b/.github/workflows/websocket-tests.yml @@ -23,6 +23,9 @@ jobs: - name: Install dependencies run: pnpm install + - name: Install Playwright browsers + run: pnpx playwright install --with-deps chromium + - name: Run lint run: pnpm run lint From db523a0fd8717771552530eaa8e2114e6b4e5acd Mon Sep 17 00:00:00 2001 From: Claude Code Date: Mon, 6 Oct 2025 07:47:42 +0000 Subject: [PATCH 3/4] Remove browser tests from multi-version CI workflow Focus on Node.js compatibility matrix testing only. Browser tests can be added to CI in a separate workflow later. --- .github/workflows/websocket-tests.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/websocket-tests.yml b/.github/workflows/websocket-tests.yml index 80abc514..a1fc3a5a 100644 --- a/.github/workflows/websocket-tests.yml +++ b/.github/workflows/websocket-tests.yml @@ -23,18 +23,12 @@ jobs: - name: Install dependencies run: pnpm install - - name: Install Playwright browsers - run: pnpx playwright install --with-deps chromium - - name: Run lint run: pnpm run lint - name: Run unit tests run: pnpm run test - - name: Run browser tests (Chromium only) - run: pnpm run test:browser:chromium - - name: Pull Autobahn Test Suite Docker image run: docker pull crossbario/autobahn-testsuite From e334eddc8c53117490fa0979be606142a28aa5bc Mon Sep 17 00:00:00 2001 From: Claude Code Date: Mon, 6 Oct 2025 07:50:13 +0000 Subject: [PATCH 4/4] Remove Node.js 16.x from CI matrix Node.js 16.x reached EOL in September 2023 and Vitest/Vite no longer support it (crypto.getRandomValues compatibility issue). Testing on actively supported LTS versions: - Node.js 18.x (Active LTS) - Node.js 20.x (Active LTS) - Node.js 22.x (Current) --- .github/workflows/websocket-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/websocket-tests.yml b/.github/workflows/websocket-tests.yml index a1fc3a5a..5893fc32 100644 --- a/.github/workflows/websocket-tests.yml +++ b/.github/workflows/websocket-tests.yml @@ -5,7 +5,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [16.x, 18.x, 20.x, 22.x] + node-version: [18.x, 20.x, 22.x] fail-fast: false name: Test on Node.js ${{ matrix.node-version }} steps: