Skip to content

Update node version #199

Update node version

Update node version #199

Workflow file for this run

name: CI Test
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
env:
NODE_VERSION: '24'
jobs:
# Stage 1: Fast unit tests (fail fast)
unit-tests:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build core package
run: npm run build:core
- name: Test core package (unit tests)
run: npm run test:core
- name: Build server package
run: npm run build:server
- name: Generate test certificates
run: |
mkdir -p server/cert
openssl req -x509 -newkey rsa:2048 -nodes -sha256 \
-subj "/CN=localhost" \
-keyout server/cert/server.key \
-out server/cert/server.crt \
-days 1
- name: Test server package (unit/integration tests)
run: npm run test:server
# Stage 2: Database integration tests (parallel, after unit tests pass)
integration-tests:
name: ${{ matrix.database }} Integration Tests
runs-on: ubuntu-latest
needs: unit-tests
strategy:
matrix:
database: [mysql, postgres, mongodb]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build core package
run: npm run build:core
- name: Build server package
run: npm run build:server
- name: Run ${{ matrix.database }} integration tests
run: npm run test:db:${{ matrix.database }} -w server
# Stage 3: End-to-End tests (only after all unit and integration tests pass)
e2e:
name: End-to-End Tests
runs-on: ubuntu-latest
needs: [unit-tests, integration-tests]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run E2E tests
run: npm run test:e2e -w server