Skip to content

Merge pull request #44 from fsender/Resolve-conflict #194

Merge pull request #44 from fsender/Resolve-conflict

Merge pull request #44 from fsender/Resolve-conflict #194

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
timeout-minutes: 45
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
with:
node-version: '22'
cache: 'npm'
- name: Setup Rust
uses: dtolnay/rust-toolchain@efa25f7f19611383d5b0ccf2d1c8914531636bf9
with:
toolchain: stable
components: clippy, rustfmt
- name: Cache Cargo
uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae
with:
workspaces: native -> target
- name: Install dependencies
run: npm ci
- name: Check Rust formatting
working-directory: native
run: cargo fmt --check
- name: Run Clippy
working-directory: native
run: cargo clippy -- -D warnings
- name: Run Rust tests
working-directory: native
run: cargo test
- name: Build native module
working-directory: native
run: |
cargo build --release
npx napi build --release --platform
- name: Build TypeScript
run: npm run build:ts
- name: Run typecheck
run: npm run typecheck
- name: Run lint
run: npm run lint
- name: Run tests with coverage
run: npm run test:coverage
- name: Start mock embeddings server for eval smoke
run: |
node scripts/eval-mock-embeddings-server.mjs > /tmp/eval-mock-embeddings.log 2>&1 &
echo $! > /tmp/eval-mock-embeddings.pid
healthy=0
for i in {1..20}; do
if curl -sf http://127.0.0.1:11434/health >/dev/null; then
echo "Mock embeddings server is healthy"
healthy=1
break
fi
sleep 0.25
done
if [ "$healthy" -ne 1 ]; then
echo "Mock embeddings server failed health check"
exit 1
fi
- name: Run eval harness smoke check (mock embeddings)
run: npm run eval:smoke
- name: Stop mock embeddings server
if: always()
run: |
if [ -f /tmp/eval-mock-embeddings.pid ]; then
kill "$(cat /tmp/eval-mock-embeddings.pid)" || true
fi