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: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -e ".[dev]" - name: Lint with ruff run: | ruff check . --exclude tests ruff format --check . --exclude tests - name: Type check with mypy run: | mypy src - name: Install embedding dependencies run: | pip install -e ".[embeddings]" - name: Run unit tests (excluding OpenAI and embedding providers) env: HF_TOKEN: ${{ secrets.HF_TOKEN }} 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: | 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: | 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: | 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