name: CI on: # Run on every PR so a contributor's first push gets feedback. pull_request: # Also run on direct pushes to main so the "main is green" signal is real. # Without this, main can silently break for days when someone bypasses # review. (#249) push: branches: [main] # Cancel any in-flight CI for the same ref when a new commit is pushed — # saves runner minutes and keeps the latest commit's status the only one # anyone reads. `github.ref` is a controlled value (refs/heads/* or # refs/pull/*/merge), not user-controlled input, so it's safe to interpolate. concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: ci: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm cache-dependency-path: pnpm-lock.yaml - name: Install dependencies run: pnpm install - name: Lint run: pnpm lint - name: Build core run: pnpm --filter @understand-anything/core build - name: Build skill run: pnpm --filter @understand-anything/skill build - name: Test core run: pnpm --filter @understand-anything/core test - name: Test skill run: pnpm test