Joseph Pollack
trigger the docs build
51b59ef
name: CI
on:
push:
branches: [main, dev, develop]
pull_request:
branches: [main, dev, 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
continue-on-error: true
- name: Type check with mypy
run: |
mypy src
continue-on-error: true
- 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 --cov --cov-branch --cov-report=xml --cov-report=term
- name: Run local embeddings tests
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: |
pytest tests/ -v -m "local_embeddings" --tb=short -p no:logfire --cov --cov-branch --cov-report=xml --cov-report=term --cov-append || 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 --cov --cov-branch --cov-report=xml --cov-report=term --cov-append || 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 --cov --cov-branch --cov-report=xml --cov-report=term --cov-append || true
continue-on-error: true # Allow failures if dependencies not available
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: DeepCritical/GradioDemo
files: ./coverage.xml
fail_ci_if_error: false
continue-on-error: true
docs:
runs-on: ubuntu-latest
permissions:
contents: write
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/develop')
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: "latest"
- name: Install dependencies
run: |
uv sync --extra dev
- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
- name: Deploy to GitHub Pages
run: |
# mkdocs gh-deploy automatically creates .nojekyll, but let's verify
uv run mkdocs gh-deploy --force --message "Deploy docs [skip ci]" --strict
# Verify .nojekyll was created in gh-pages branch
git fetch origin gh-pages:gh-pages || true
git checkout gh-pages || true
if [ -f .nojekyll ]; then
echo "✓ .nojekyll file exists"
else
echo "⚠ .nojekyll file missing, creating it..."
touch .nojekyll
git add .nojekyll
git commit -m "Add .nojekyll to disable Jekyll [skip ci]" || true
git push origin gh-pages || true
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}