Skip to content

Merge pull request #332 from brendanlong/claude/f7ce40a3-9dc7-46a2-96… #630

Merge pull request #332 from brendanlong/claude/f7ce40a3-9dc7-46a2-96…

Merge pull request #332 from brendanlong/claude/f7ce40a3-9dc7-46a2-96… #630

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint-and-typecheck:
name: Lint & Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm run db:generate
- name: Run ESLint
run: pnpm run lint
- name: Check TypeScript types
run: pnpm run typecheck
- name: Check formatting
run: pnpm run format:check
test:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm run db:generate
- name: Run unit tests
run: pnpm run test:unit
test-integration:
name: Integration Tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm run db:generate
- name: Configure git for tests
run: |
git config --global user.email "test@example.com"
git config --global user.name "Test User"
- name: Run integration tests
run: pnpm run test:integration
build:
name: Build
runs-on: ubuntu-latest
needs: [lint-and-typecheck, test, test-integration]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate Prisma client
run: pnpm run db:generate
- name: Build Next.js application
run: pnpm run build