name: ci on: pull_request: branches: - main push: branches: - main permissions: contents: read jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - uses: pnpm/setup@fa36a5ef7dcdefc3a7cb25655c122e00cf6e636e # v3 with: cache: true install: false - name: ๐Ÿ“ฆ Install dependencies run: pnpm install - name: ๐Ÿšง Set up project run: pnpm dev:prepare - name: ๐Ÿ”  Lint project run: pnpm lint - name: โœ‚๏ธ Knip project run: pnpm knip test: strategy: matrix: os: [ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - uses: pnpm/setup@fa36a5ef7dcdefc3a7cb25655c122e00cf6e636e # v3 with: runtime: node@26 cache: true install: false - name: ๐Ÿ“ฆ Install dependencies run: pnpm install - name: Install Playwright # does not need to explicitly set chromium after https://github.com/microsoft/playwright/issues/14862 is solved run: pnpm playwright install chromium - name: ๐Ÿšง Set up project run: pnpm dev:prepare - name: ๐Ÿงช Test project run: pnpm test - name: ๐Ÿ’ช Test types run: pnpm test:types - name: ๐Ÿ›  Build project run: pnpm build - name: ๐ŸŸฉ Coverage if: matrix.os != 'windows-latest' uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7