name: CI on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install dependencies run: bun install - name: Lint (Biome) run: bun run lint - name: Install dependencies (pulse) working-directory: packages/pulse run: bun install - name: Build pulse (needed by upulse) working-directory: packages/pulse run: bun run build - name: Install dependencies (upulse) working-directory: packages/upulse run: bun install - name: Install dependencies (pulse-hermes) working-directory: packages/pulse-hermes run: bun install - name: Install dependencies (pulse-cursor) working-directory: packages/pulse-cursor run: bun install - name: Install dependencies (pulse-openclaw) working-directory: packages/pulse-openclaw run: bun install - name: Type check (pulse) working-directory: packages/pulse run: bunx tsc --noEmit - name: Type check (upulse) working-directory: packages/upulse run: bunx tsc --noEmit - name: Type check (pulse-hermes) working-directory: packages/pulse-hermes run: bunx tsc --noEmit - name: Type check (pulse-cursor) working-directory: packages/pulse-cursor run: bunx tsc --noEmit - name: Type check (pulse-openclaw) working-directory: packages/pulse-openclaw run: bunx tsc --noEmit - name: Unit tests (pulse) working-directory: packages/pulse run: | set +e OUTPUT=$(bun test 2>&1) echo "$OUTPUT" FAIL_COUNT=$(echo "$OUTPUT" | grep -oP '\d+ fail' | grep -oP '\d+' || echo "0") if [ "$FAIL_COUNT" != "0" ]; then echo "Tests failed: $FAIL_COUNT" exit 1 fi - name: Unit tests (pulse-hermes) working-directory: packages/pulse-hermes run: bun test - name: Unit tests (pulse-cursor) working-directory: packages/pulse-cursor run: bun test - name: Unit tests (pulse-openclaw) working-directory: packages/pulse-openclaw run: bun test - name: Unit tests (upulse) working-directory: packages/upulse run: bun test src/config.test.ts