name: CI

on:
  push:
  pull_request:

jobs:
  ci:
    runs-on: docker
    container:
      image: oven/bun:1
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install dependencies
        run: bun install --frozen-lockfile --ignore-scripts

      - name: Lint
        run: bun run lint

      - name: Test
        run: bun test

      - name: Build
        run: bun run build

  e2e:
    needs: ci
    runs-on: docker
    container:
      image: mcr.microsoft.com/playwright:v1.59.1-noble
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install Bun
        run: |
          apt-get update && apt-get install -y unzip
          curl -fsSL https://bun.sh/install | bash
          echo "$HOME/.bun/bin" >> $GITHUB_PATH

      - name: Install dependencies
        run: |
          export PATH="$HOME/.bun/bin:$PATH"
          bun install --frozen-lockfile --ignore-scripts

      - name: Build client
        run: |
          export PATH="$HOME/.bun/bin:$PATH"
          bun run build

      - name: Run E2E tests
        run: |
          export PATH="$HOME/.bun/bin:$PATH"
          CI=true bun run test:e2e
