name: ci on: pull_request: push: branches: - main workflow_dispatch: permissions: contents: read jobs: python: runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install run: | python -m pip install --upgrade pip python -m pip install -e ".[dev]" - name: Focused lint run: | python -m ruff check \ lib/agent_routing.py \ lib/config.py \ lib/db.py \ lib/evaluate.py \ lib/llm.py \ lib/post_extract.py \ telegram/approvals.py \ scripts/prove_phase1b_local.py \ tests/test_agent_routing.py \ tests/test_evaluate_agent_routing.py \ tests/test_phase1b_end_to_end.py \ tests/test_eval_parse.py \ tests/test_contributor.py \ tests/test_search.py - name: Unit tests run: | python -m pytest --junitxml=.crabbox-results/pytest.xml - name: Phase 1B local proof env: PHASE1B_AGENT_ROUTING_ENABLED: "true" run: | scripts/crabbox_phase1b_proof.sh - name: Upload proof artifacts if: always() uses: actions/upload-artifact@v4 with: name: teleo-infrastructure-ci-proof path: | proof/phase1b-local-e2e-proof.json .crabbox-results/*.xml .crabbox-results/*.json if-no-files-found: warn