chore(ci): add workspace and db guardrails
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user