name: CI on: push: branches: ["*"] pull_request: branches: [main] jobs: 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: Lint run: ruff check rag_pipeline/ type-check: 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 mypy run: pip install mypy - name: Type check run: mypy rag_pipeline/ --ignore-missing-imports security: 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 bandit run: pip install bandit - name: Security scan run: bandit -r rag_pipeline/ -ll test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Cache pip uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }} restore-keys: ${{ runner.os }}-pip- - name: Install dependencies run: pip install -r requirements.txt - name: Run tests run: pytest tests/ -v env: GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}