name: CI on: push: branches: - main pull_request: branches: - main concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: lint: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v5 with: fetch-depth: 1 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v6 with: node-version: 24 - name: Get pnpm store directory id: pnpm-cache run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - run: pnpm install --frozen-lockfile - run: pnpm run lint typecheck: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v5 with: fetch-depth: 1 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v6 with: node-version: 24 - name: Get pnpm store directory id: pnpm-cache run: echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT - uses: actions/cache@v4 with: path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - run: pnpm install --frozen-lockfile - run: pnpm run test:types