name: CI on: push: branches: [main] pull_request: branches: [main] jobs: lint-and-test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm lint - run: pnpm --filter api test - run: pnpm --filter api test:bdd - run: pnpm build e2e: runs-on: ubuntu-latest needs: lint-and-test steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - name: Cache Cypress binary uses: actions/cache@v4 with: path: ~/.cache/Cypress key: cypress-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} - run: pnpm install --frozen-lockfile # pnpm install doesn't reliably trigger Cypress's postinstall binary # download (see apps/web's cypress caveat in the README) — install it # explicitly so `cypress run` finds it. - run: pnpm --filter web exec cypress install - run: pnpm --filter web e2e