name: CI on: pull_request: branches: - main - develop push: branches: - main - develop jobs: lint-and-typecheck: name: Lint and Type Check runs-on: ubuntu-latest steps: - name: Checkout code 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 ESLint run: npm run lint - name: Run TypeScript type check run: npm run type-check build: name: Build Application runs-on: ubuntu-latest needs: lint-and-typecheck steps: - name: Checkout code 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: Build Next.js application run: npm run build env: NODE_ENV: production - name: Upload build artifacts uses: actions/upload-artifact@v4 with: name: build-output path: .next retention-days: 7