name: CI on: push: branches: [ main, master, feature/* ] pull_request: branches: [ main, master ] concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: test: runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v4 - name: Install dependencies run: npm ci --prefer-offline --no-audit --no-fund env: NODE_OPTIONS: '--max-old-space-size=4096' UV_THREADPOOL_SIZE: 16 - name: Run linting and type checking in parallel run: | npm run lint & npm run typecheck & wait env: NODE_OPTIONS: '--max-old-space-size=4096' - name: Build application run: npm run build env: # Use empty string for YOUTUBE_API_KEY during CI build YOUTUBE_API_KEY: "" NODE_OPTIONS: '--max-old-space-size=4096' NEXT_TELEMETRY_DISABLED: 1