Skip to content

fix(pre-M3): root page 500 — extract buttonVariants + guard auth() #16

fix(pre-M3): root page 500 — extract buttonVariants + guard auth()

fix(pre-M3): root page 500 — extract buttonVariants + guard auth() #16

Workflow file for this run

name: Production Deploy
on:
push:
branches: [main, master]
jobs:
quality:
name: Quality gates (typecheck, lint, build)
runs-on: ubuntu-latest
env:
DATABASE_URL: ${{ secrets.CI_DATABASE_URL }}
DATABASE_URL_UNPOOLED: ${{ secrets.CI_DATABASE_URL_UNPOOLED }}
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: ${{ secrets.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY }}
CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }}
NEXT_PUBLIC_CLERK_SIGN_IN_URL: /login
NEXT_PUBLIC_CLERK_SIGN_UP_URL: /signup
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: package-lock.json
- name: Install dependencies
run: npm ci
- name: Generate Prisma client
run: npx prisma generate
- name: Type check
run: npm run typecheck
- name: Lint
run: npm run lint
- name: Build
run: npm run build
migrate:
name: Run Prisma migrations (production)
runs-on: ubuntu-latest
needs: quality
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: package-lock.json
- name: Install dependencies
run: npm ci
- name: Run database migrations
run: npx prisma migrate deploy
env:
DATABASE_URL: ${{ secrets.DATABASE_URL_UNPOOLED }}
DATABASE_URL_UNPOOLED: ${{ secrets.DATABASE_URL_UNPOOLED }}
deploy:
name: Deploy to Vercel production
runs-on: ubuntu-latest
needs: [quality, migrate]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: --prod