mirror of
https://github.com/tiennm99/bsk.git
synced 2026-08-26 04:26:03 +00:00
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.
58 lines
1.5 KiB
YAML
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.
|