name: AI Unit Tests & Type Check on: push: branches: [master] paths: - 'packages/ai-commands/**' pull_request: branches: [master] paths: - 'packages/ai-commands/**' schedule: - cron: '15 0 * * 1' # Every Monday @ 12:15am UTC (off the hour to avoid heavy load times) # Cancel old builds on new commit for same workflow + branch/PR concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true permissions: contents: read jobs: test: runs-on: blacksmith-4vcpu-ubuntu-2404 env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} defaults: run: working-directory: ./packages/ai-commands steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false sparse-checkout: | packages patches - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 name: Install pnpm with: run_install: false - name: Use Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version-file: '.nvmrc' cache: 'pnpm' - name: Install deps run: pnpm install --frozen-lockfile - name: Type check run: pnpm run typecheck - name: Run tests run: pnpm run test