chore(ci): add workspace and db guardrails

This commit is contained in:
2026-03-31 22:36:12 +02:00
parent cb8669c489
commit 0b192efdb1
10 changed files with 563 additions and 38 deletions
+27 -6
View File
@@ -13,6 +13,8 @@ concurrency:
env:
NODE_VERSION: "20"
PNPM_VERSION: "9.14.2"
CI_AUTH_URL: http://localhost:3100
CI_AUTH_SECRET: capakraken-ci-build-secret-rotate-if-shared
jobs:
guardrails:
@@ -36,6 +38,12 @@ jobs:
- name: Check architecture guardrails
run: pnpm check:architecture
- name: Check workspace exports
run: pnpm check:exports
- name: Check workspace imports
run: pnpm check:imports
# ──────────────────────────────────────────────
# Typecheck — ~40s, no services needed
# ──────────────────────────────────────────────
@@ -58,7 +66,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm --filter @capakraken/db exec prisma generate
run: pnpm db:generate
- name: Cache Turborepo
uses: actions/cache@v4
@@ -68,7 +76,7 @@ jobs:
restore-keys: turbo-typecheck-
- name: Run typecheck
run: pnpm --filter @capakraken/web exec tsc --noEmit
run: pnpm typecheck
# ──────────────────────────────────────────────
# Lint — ~20s, no services needed
@@ -92,7 +100,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm --filter @capakraken/db exec prisma generate
run: pnpm db:generate
- name: Cache Turborepo
uses: actions/cache@v4
@@ -136,6 +144,10 @@ jobs:
env:
DATABASE_URL: postgresql://capakraken:capakraken_test@localhost:5432/capakraken_test
REDIS_URL: redis://localhost:6379
NEXTAUTH_URL: ${{ env.CI_AUTH_URL }}
AUTH_URL: ${{ env.CI_AUTH_URL }}
NEXTAUTH_SECRET: ${{ env.CI_AUTH_SECRET }}
AUTH_SECRET: ${{ env.CI_AUTH_SECRET }}
steps:
- uses: actions/checkout@v4
@@ -152,10 +164,11 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm --filter @capakraken/db exec prisma generate
run: pnpm db:generate
- name: Run unit tests with coverage
run: |
pnpm --filter @capakraken/web test:unit -- --coverage
pnpm --filter @capakraken/engine exec vitest run --coverage
pnpm --filter @capakraken/staffing exec vitest run --coverage
pnpm --filter @capakraken/api exec vitest run --coverage
@@ -172,6 +185,10 @@ jobs:
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://placeholder:placeholder@localhost:5432/placeholder
NEXTAUTH_URL: ${{ env.CI_AUTH_URL }}
AUTH_URL: ${{ env.CI_AUTH_URL }}
NEXTAUTH_SECRET: ${{ env.CI_AUTH_SECRET }}
AUTH_SECRET: ${{ env.CI_AUTH_SECRET }}
steps:
- uses: actions/checkout@v4
@@ -188,7 +205,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm --filter @capakraken/db exec prisma generate
run: pnpm db:generate
- name: Cache Turborepo
uses: actions/cache@v4
@@ -243,6 +260,10 @@ jobs:
CONFIRM_DESTRUCTIVE_DB_NAME: capakraken_test
REDIS_URL: redis://localhost:6379
PORT: 3100
NEXTAUTH_URL: ${{ env.CI_AUTH_URL }}
AUTH_URL: ${{ env.CI_AUTH_URL }}
NEXTAUTH_SECRET: ${{ env.CI_AUTH_SECRET }}
AUTH_SECRET: ${{ env.CI_AUTH_SECRET }}
steps:
- uses: actions/checkout@v4
@@ -259,7 +280,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm --filter @capakraken/db exec prisma generate
run: pnpm db:generate
- name: Cache Playwright browsers
id: playwright-cache