learning_ai_clock/.github/workflows/ci.yml
saravanakumardb1 15f34c1c80 feat(ci): add backend CI job with common-plat checkout, upgrade Node to 22
- Backend: common-plat checkout, pnpm build, typecheck, 135 tests
- Web: upgrade Node 20→22, add concurrency group
2026-03-20 15:19:28 -07:00

80 lines
1.7 KiB
YAML

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
backend:
name: Backend — typecheck + test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Checkout common-plat (for @bytelyst/* packages)
uses: actions/checkout@v4
with:
repository: saravanakumardb1/learning_ai_common_plat
path: learning_ai_common_plat
token: ${{ secrets.GH_PAT }}
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Install pnpm (for common-plat build)
run: npm install -g pnpm
- name: Build @bytelyst/* packages
working-directory: learning_ai_common_plat
run: |
pnpm install --frozen-lockfile
pnpm build
- name: Install backend dependencies
working-directory: backend
run: npm ci
- name: Backend typecheck
working-directory: backend
run: npm run typecheck
- name: Backend tests
working-directory: backend
run: npm test
env:
DB_PROVIDER: memory
JWT_SECRET: ci-test-secret-at-least-32-characters-long
web:
name: Web — typecheck + lint + test
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: web/package-lock.json
- run: npm ci
- name: Typecheck
run: npx tsc --noEmit
- name: Lint
run: npm run lint
- name: Test
run: npm test