| name: Tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| # Cancel in-progress runs for the same PR/branch | |
| concurrency: | |
| group: tests-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python 3.11 | |
| run: uv python install 3.11 | |
| - name: Install dependencies | |
| run: | | |
| uv venv .venv --python 3.11 | |
| source .venv/bin/activate | |
| uv pip install -e ".[all,dev]" | |
| - name: Run tests | |
| run: | | |
| source .venv/bin/activate | |
| python -m pytest tests/ -q --ignore=tests/integration --tb=short -n auto | |
| env: | |
| # Ensure tests don't accidentally call real APIs | |
| OPENROUTER_API_KEY: "" | |
| OPENAI_API_KEY: "" | |
| NOUS_API_KEY: "" | |