name: Quality Checks on: push: branches: - main pull_request: branches: - main jobs: lint-test-build: name: Lint, Test and Build runs-on: [ self-hosted, linux, vps ] env: BETTER_AUTH_SECRET: test-secret NEXT_PUBLIC_APP_URL: http://localhost:3000 BETTER_AUTH_URL: http://localhost:3000 NEXT_PUBLIC_CONVEX_URL: http://localhost:3210 DATABASE_URL: file:./prisma/db.dev.sqlite steps: - name: Checkout uses: https://github.com/actions/checkout@v4 - name: Setup Bun uses: https://github.com/oven-sh/setup-bun@v2 with: bun-version: 1.3.1 - name: Install dependencies run: bun install --frozen-lockfile - name: Cache Next.js build cache uses: https://github.com/actions/cache@v4 with: path: | ${{ github.workspace }}/.next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('bun.lock') }}-${{ hashFiles('**/*.{js,jsx,ts,tsx}') }} restore-keys: | ${{ runner.os }}-nextjs-${{ hashFiles('bun.lock') }}- - name: Generate Prisma client env: PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING: "1" run: bun run prisma:generate - name: Lint run: bun run lint - name: Test run: bun test - name: Build run: bun run build:bun