From a8432ca9fef310447d89c585f56e3e0b1ccb9e99 Mon Sep 17 00:00:00 2001 From: Sebastien Tardif Date: Fri, 5 Jun 2026 13:15:51 -0700 Subject: [PATCH] ci: run integration tests on all three OSes Expand integration-test to a matrix of ubuntu-latest, macos-latest, and windows-latest. Use xvfb-run on Linux for headless display. Restrict harden-runner to Linux only (it only supports Ubuntu VMs). Closes #79 Signed-off-by: Sebastien Tardif --- .github/workflows/ci.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5725e8..973111e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,10 +68,15 @@ jobs: integration-test: needs: [unit-test, build] - runs-on: macos-latest + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.os }} timeout-minutes: 15 steps: - name: Harden runner + if: runner.os == 'Linux' uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: egress-policy: audit @@ -87,7 +92,12 @@ jobs: - name: Compile extension and tests run: npm run compile && npm run compile-tests + - name: Run extension integration tests (Linux) + if: runner.os == 'Linux' + run: xvfb-run -a npm run test:extension + - name: Run extension integration tests + if: runner.os != 'Linux' run: npm run test:extension - name: Setup UI test VS Code @@ -96,5 +106,10 @@ jobs: - name: Patch test VS Code to run as background app run: bash scripts/hide-test-vscode.sh + - name: Run UI tests (Linux) + if: runner.os == 'Linux' + run: xvfb-run -a npx extest run-tests './out-uitest/test/ui/*.test.js' --extensions_dir .vscode-test/extensions + - name: Run UI tests + if: runner.os != 'Linux' run: npx extest run-tests './out-uitest/test/ui/*.test.js' --extensions_dir .vscode-test/extensions