From 9aa969573136773b7e178690bb6f72a6330d0f84 Mon Sep 17 00:00:00 2001 From: Ethan Hurst Date: Wed, 25 Feb 2026 15:09:24 +1000 Subject: [PATCH] feat(06-01): create GitHub Actions test workflow - Tests workflow: push/PR to main + workflow_dispatch - 3x3 matrix: ubuntu/macos/windows x Node 18/20/22 (9 jobs) - Concurrency groups with cancel-in-progress - 10-minute timeout, fail-fast enabled - Steps: checkout, setup-node with npm cache, npm ci, npm test --- .github/workflows/test.yml | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..cd4ad3dcc --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,40 @@ +name: Tests + +on: + push: + branches: + - main + pull_request: + branches: + - main + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + test: + runs-on: ${{ matrix.os }} + timeout-minutes: 10 + + strategy: + fail-fast: true + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + node-version: [18, 20, 22] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Run tests + run: npm test