Skip to content

chore: add direct wrangler wrapper #209

chore: add direct wrangler wrapper

chore: add direct wrangler wrapper #209

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'
- name: Set up uv
uses: astral-sh/setup-uv@v8.1.0
- name: Install dependencies
run: uv sync --frozen --group dev
- name: Run unit tests
run: |
set -o pipefail
uv run python -m pytest -q 2>&1 | tee pytest.log
- name: Run mock route evaluation
run: |
set -o pipefail
uv run python scripts/eval_routes.py --mock-embeddings 2>&1 | tee mock-route-eval.log
- name: Verify route contract
run: |
set -o pipefail
uv run python scripts/verify_route_contract.py 2>&1 | tee route-contract.log
- name: Build Docker image
run: |
set -o pipefail
docker build . 2>&1 | tee docker-build.log
- name: Verify redacted review import
run: |
set -o pipefail
uv run python scripts/import_review_samples.py \
--input tests/samples/redacted_review_samples.synthetic.jsonl \
--output /tmp/intentmux-review-cases.yaml \
--routes config/routes.yaml \
--output-summary json 2>&1 | tee review-import.log
uv run python -c "from pathlib import Path; from scripts.review_decisions import load_cases, load_route_ids, validate_expected_routes; cases=load_cases(Path('/tmp/intentmux-review-cases.yaml')); validate_expected_routes(cases, load_route_ids(Path('config/routes.yaml'))); assert len(cases)==1; assert cases[0].expected_route=='deep'" 2>&1 | tee review-decisions.log
- name: Run router log summary fixture check
run: |
set -o pipefail
uv run python scripts/router_log_summary.py --output json < tests/samples/router_logs.ndjson 2>&1 | tee router-log-summary.json
uv run python -c "import json; payload=json.load(open('router-log-summary.json')); assert payload['total']==3; assert payload['route_complete']==2; assert payload['route_error']==1"
- name: Run route budget fixture check
run: |
set -o pipefail
uv run python scripts/check_route_error_budget.py tests/samples/router_logs.ndjson \
--max-error-rate 0.4 \
--max-target-error-rate 1.0 \
--max-route-error-rate 1.0 \
--max-not-ok-rate 0.5 \
--max-upstream-status-rate 503=0.5 2>&1 | tee route-budget.log
- name: Upload CI diagnostics (failure only)
if: failure()
uses: actions/upload-artifact@v4
with:
name: ci-failure-diagnostics
path: |
pytest.log
mock-route-eval.log
route-contract.log
docker-build.log
review-import.log
review-decisions.log
router-log-summary.json
route-budget.log