name: CI on: push: branches: [main, master] pull_request: branches: [main, master] jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: pip - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install pytest pytest-cov - name: Run tests run: | pytest -v --tb=short - name: Check import integrity run: | python -c " import sys, os sys.path.insert(0, '.') from api.utils import parse_citations, format_score from api.rag_engine import detect_jurisdiction, auto_context_depth, tier_sources, strip_think_tags from embeddings.embedder import LexEmbedder print('All imports OK') " lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install ruff run: pip install ruff - name: Run ruff run: ruff check . --ignore=E402,F401,F811 --exit-zero build: runs-on: ubuntu-latest needs: [test] if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Install build tools run: pip install build - name: Build package run: python -m build - name: Upload artifact uses: actions/upload-artifact@v4 with: name: dist path: dist/