name: CI on: push: branches: [main, develop] pull_request: branches: [main, develop] 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 --dev - name: Lint with ruff run: | uv run ruff check . --exclude tests uv run ruff format --check . --exclude tests - name: Type check with mypy run: | uv run mypy src - name: Run unit tests (No Black Box Apis) env: HF_TOKEN: ${{ secrets.HF_TOKEN }} run: | uv run pytest tests/unit/ -v -m "not openai and not embedding_provider" --tb=short -p no:logfire - name: Run local embeddings tests env: HF_TOKEN: ${{ secrets.HF_TOKEN }} run: | uv run pytest tests/ -v -m "local_embeddings" --tb=short -p no:logfire || true continue-on-error: true # Allow failures if dependencies not available - name: Run HuggingFace integration tests env: HF_TOKEN: ${{ secrets.HF_TOKEN }} run: | uv run pytest tests/integration/ -v -m "huggingface and not embedding_provider" --tb=short -p no:logfire || true continue-on-error: true # Allow failures if HF_TOKEN not set - name: Run non-OpenAI integration tests (excluding embedding providers) env: HF_TOKEN: ${{ secrets.HF_TOKEN }} run: | uv run pytest tests/integration/ -v -m "integration and not openai and not embedding_provider" --tb=short -p no:logfire || true continue-on-error: true # Allow failures if dependencies not available