Skip to content

ci: add Node.js version matrix, caching, and lint step to test workflow #2322

Description

@AshayK003

Problem

The CI workflow at .github/workflows/test.yml has several gaps:

  1. Only tests on Node.js 22.x (volta config says 16 — mismatch)
  2. No dependency caching between runs (slow CI)
  3. No lint step in CI (eslint only runs via pre-commit hook)
  4. Uses actions/checkout@v2 and actions/setup-node@v2 (both outdated)

Suggested Fix

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x, 22.x]
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'yarn'
    - run: yarn install --frozen-lockfile
    - run: cd packages/web && yarn build
    - run: cd packages/web && yarn lint
    - run: cd packages/web && yarn test --verbose --maxWorkers=2

Severity

Medium — CI reliability and speed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions