name: CI on: pull_request: branches: [main] push: branches: [main] permissions: contents: read jobs: lint-commits: name: Lint commits runs-on: ubuntu-latest if: github.event_name == 'pull_request' steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: "22" - name: Install dependencies run: npm ci - name: Validate conventional commits run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose build-and-test: name: Build & test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "22" - name: Install dependencies run: npm ci - name: Check formatting run: npx prettier --check . - name: Typecheck run: npx tsc --noEmit - name: Build run: npm run build - name: Test run: npm test