name: CI on: push: branches: [main] pull_request: permissions: contents: read # to fetch code (actions/checkout) env: # We only install Chromium manually PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1' jobs: Tests: runs-on: ${{ matrix.os }} timeout-minutes: 15 strategy: matrix: include: - node-version: 18 os: windows-latest - node-version: 18 os: macOS-latest - node-version: 18 os: ubuntu-latest - node-version: 20 os: ubuntu-latest - node-version: 21 os: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: pnpm/action-setup@v2.2.4 - uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm playwright install chromium - run: pnpm test env: CI: true Lint: runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@v3 - uses: pnpm/action-setup@v2.2.4 - uses: actions/setup-node@v3 with: node-version: 18 cache: pnpm - name: install run: pnpm install --frozen-lockfile - name: type check run: pnpm check - name: lint run: pnpm lint - name: build and check generated types run: pnpm build && { [ "`git status --porcelain=v1`" == "" ] || (echo "Generated types have changed — please regenerate types locally and commit the changes after you have reviewed them"; git diff; exit 1); }