Spaces:
Running
Running
| 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 | |