name: CI on: pull_request: branches: - main push: branches-ignore: - main jobs: build-lint-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "24" - name: Setup pnpm uses: pnpm/action-setup@v4 with: run_install: false - name: Get pnpm store directory id: pnpm-cache shell: bash run: echo "STORE_PATH=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT" - name: Cache pnpm store uses: actions/cache@v4 with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies run: pnpm install --frozen-lockfile - name: Lint (Biome) run: pnpm lint - name: Build (tsc -b) run: pnpm build - name: Test (Vitest) run: pnpm test - name: Docs check (TypeDoc validation) run: pnpm docs:check