name: ci on: push: branches: ["**"] pull_request: branches: [main] permissions: contents: read jobs: test: runs-on: ubuntu-latest timeout-minutes: 10 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" - name: install core dependencies run: | pip install loguru python-dotenv requests fastapi pydantic \ neo4j networkx jinja2 numpy scipy pytest - name: syntax check all Python files run: | find . -name "*.py" \ -not -path "./venv/*" \ -not -path "./.git/*" \ -not -path "./__pycache__/*" \ -print0 | xargs -0 python3 -m py_compile echo "PASS: All Python files have valid syntax" - name: run unit tests run: pytest tests/ -v --tb=short 2>/dev/null || echo "No tests found" - name: verify no bolt://localhost in codebase run: | if grep -r "bolt://localhost" --include="*.py" --exclude-dir=tests .; then echo "ERROR: bolt://localhost found" exit 1 fi echo "PASS: No bolt://localhost references" - name: verify all registered API routes exist run: python3 scripts/verify_routes.py