name: CI on: pull_request: branches: [main] push: branches: [main] permissions: contents: read jobs: lint-commits: name: Lint commits runs-on: docker container: image: docker.io/library/node:22 if: github.event_name == 'pull_request' steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - 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: docker container: image: docker.io/library/node:22 steps: - uses: actions/checkout@v4 - 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