name: CI on: push: branches: [main] pull_request: branches: [main] env: DATABASE_URL: postgresql://dragons:stash@localhost:5432/dragonsstash jobs: lint-and-build: runs-on: ubuntu-latest services: postgres: image: postgres:16-alpine env: POSTGRES_USER: dragons POSTGRES_PASSWORD: stash POSTGRES_DB: dragonsstash ports: - 5432:5432 options: >- --health-cmd "pg_isready -U dragons -d dragonsstash" --health-interval 10s --health-timeout 5s --health-retries 5 steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: npm - name: Install dependencies run: npm ci - name: Run database migrations run: npx prisma migrate deploy - name: Build (includes type check and lint) run: npm run build env: AUTH_SECRET: ci-test-secret-not-for-production AUTH_TRUST_HOST: "true" NEXT_PUBLIC_APP_URL: http://localhost:3000