Files
bsk/.github/workflows/ci.yml
T
tiennm99 a44c9a9745 build: move from pnpm to npm
Replace pnpm-lock.yaml with package-lock.json. Four of the five overrides move
across unchanged, ranges intact.

postcss needed a different shape: npm rejects an override that disagrees with a
direct dependency (EOVERRIDE), and postcss was a devDependency at ^8.5.15 while
the override floored it at >=8.5.18. The devDependency now sits at the advisory
floor and the override references it as $postcss, so transitive copies follow
the same resolution the pnpm override produced.

brace-expansion is still deliberately not overridden. It resolves to 1.1.18 for
eslint's minimatch 3.x chain and 5.0.9 elsewhere; 1.1.18 is a patched 1.x, which
did not exist when the exception was written, so eslint runs clean and the
advisory is gone.

.npmrc held only pnpm-specific settings (verify-deps-before-run,
ignored-build-scripts-status-warn-only) and is removed. db:push, the Playwright
webServer command, and the secret-leak pathspec all referenced pnpm and would
have broken.
2026-08-17 13:42:18 +07:00

58 lines
1.5 KiB
YAML

name: CI
on:
pull_request:
branches: [main]
push:
branches: [main]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
verify:
name: Lint / Typecheck / Build
runs-on: ubuntu-latest
env:
# Dummy values so build can resolve env schema.
# Real secrets live in the Vercel project, never in CI.
NEXT_PUBLIC_APP_ENV: preview
NEXT_PUBLIC_SUPABASE_URL: https://example.supabase.co
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY: sb_publishable_ci_placeholder
SUPABASE_SECRET_KEY: sb_secret_ci_placeholder
UPSTASH_REDIS_REST_URL: https://example.upstash.io
UPSTASH_REDIS_REST_TOKEN: ci_placeholder
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 24
cache: npm
- run: npm ci
- name: Secret-leak guard (sb_secret_* in NEXT_PUBLIC_*)
run: npm run check:no-secret-leak
- name: Format check
run: npm run format:check
- name: Unit tests
run: npm test
- name: Lint
run: npm run lint
- name: Typecheck
run: npm run typecheck
- name: Build
run: npm run build
# E2E tests (npm test:e2e) are run locally / can be enabled later
# when Playwright browser installation and full build time are available.
# Current suite covers smoke tests; full happy-path tests require
# a provisioned Supabase project with seed data.