name: Workflow on: push: branches: [ main ] pull_request: branches: [ main ] jobs: typescript: name: ʦ TypeScript timeout-minutes: 8 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 2 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/setup-node@v4 with: node-version: lts/* cache: 'pnpm' - uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-${{ github.sha }} restore-keys: | ${{ runner.os }}-turbo- - name: Install dependencies run: pnpm install - name: Typecheck run: pnpm run typecheck - name: Lint run: pnpm run lint - name: Production Build (test env) run: pnpm --filter web build:test test: name: ⚫️ Test timeout-minutes: 8 runs-on: ubuntu-latest env: SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.SUPABASE_SERVICE_ROLE_KEY }} SUPABASE_DB_WEBHOOK_SECRET: ${{ secrets.SUPABASE_DB_WEBHOOK_SECRET }} STRIPE_SECRET_KEY: ${{ secrets.STRIPE_SECRET_KEY }} STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }} steps: - uses: actions/checkout@v4 with: fetch-depth: 2 - uses: pnpm/action-setup@v2 with: version: 8 - uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-${{ github.sha }} restore-keys: | ${{ runner.os }}-turbo- - uses: actions/setup-node@v4 with: node-version: lts/* cache: 'pnpm' - name: Install dependencies run: pnpm install - name: Store Playwright's Version run: | PLAYWRIGHT_VERSION=$(pnpm ls @playwright/test --filter web-e2e | grep @playwright | sed 's/.*@//') echo "Playwright's Version: $PLAYWRIGHT_VERSION" echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> $GITHUB_ENV - name: Cache Playwright Browsers for Playwright's Version id: cache-playwright-browsers uses: actions/cache@v4 with: path: ~/.cache/ms-playwright key: playwright-browsers-${{ env.PLAYWRIGHT_VERSION }} - name: Install Playwright Browsers if: steps.cache-playwright-browsers.outputs.cache-hit != 'true' run: pnpm exec ./apps/e2e/node_modules/.bin/playwright install --with-deps - name: Supabase CLI uses: supabase/setup-cli@v1 - name: Supabase Server run: pnpm run supabase:web:start -- -x studio,migra,deno-relay,pgadmin-schema-diff,imgproxy,logflare - name: Run App run: | pnpm run dev & - name: Run Playwright tests run: pnpm run test - uses: actions/upload-artifact@v4 if: always() with: name: playwright-report path: apps/e2e/playwright-report/ retention-days: 7