Spaces:
Running
Running
| name: CI | |
| on: | |
| push: | |
| branches: [main, dev] | |
| pull_request: | |
| branches: [main, dev] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.11"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| version: "latest" | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| uv sync --extra dev | |
| - name: Lint with ruff | |
| continue-on-error: true | |
| run: | | |
| uv run ruff check . --exclude tests --exclude reference_repos | |
| uv run ruff format --check . --exclude tests --exclude reference_repos | |
| - name: Type check with mypy | |
| continue-on-error: true | |
| run: | | |
| uv run mypy src --ignore-missing-imports | |
| - name: Run unit tests (No OpenAI/Anthropic, HuggingFace only) | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| LLM_PROVIDER: huggingface | |
| run: | | |
| uv run pytest tests/unit/ -v -m "not openai and not anthropic and not embedding_provider" --tb=short -p no:logfire --cov --cov-branch --cov-report=xml | |
| - name: Run local embeddings tests | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| LLM_PROVIDER: huggingface | |
| run: | | |
| uv run pytest tests/ -v -m "local_embeddings" --tb=short -p no:logfire --cov --cov-branch --cov-report=xml --cov-append || true | |
| continue-on-error: true # Allow failures if dependencies not available | |
| - name: Run HuggingFace integration tests | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| LLM_PROVIDER: huggingface | |
| run: | | |
| uv run pytest tests/integration/ -v -m "huggingface and not embedding_provider" --tb=short -p no:logfire --cov --cov-branch --cov-report=xml --cov-append || true | |
| continue-on-error: true # Allow failures if HF_TOKEN not set | |
| - name: Run non-OpenAI/Anthropic integration tests (excluding embedding providers) | |
| env: | |
| HF_TOKEN: ${{ secrets.HF_TOKEN }} | |
| LLM_PROVIDER: huggingface | |
| run: | | |
| uv run pytest tests/integration/ -v -m "integration and not openai and not anthropic and not embedding_provider" --tb=short -p no:logfire --cov --cov-branch --cov-report=xml --cov-append || true | |
| continue-on-error: true # Allow failures if dependencies not available | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@v5 | |
| continue-on-error: true | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| slug: DeepCritical/GradioDemo | |