name: CI on: push: pull_request: permissions: contents: read jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.11", "3.12"] steps: - uses: actions/checkout@v6 - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} cache: pip cache-dependency-path: | requirements.txt requirements-dev.txt - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install -r requirements-dev.txt - name: Lint run: python -m ruff check app.py src tests scripts - name: Compile run: python -m compileall app.py src tests scripts - name: Test run: python scripts/run_pytest.py -q - name: Streamlit import smoke test run: python -c "import app; from src.dashboard import CommandCenterApp; CommandCenterApp()" docker-build: runs-on: ubuntu-latest needs: test steps: - uses: actions/checkout@v6 - name: Build and smoke test Docker image run: python3 scripts/docker_smoke.py --image rag-qa-command-center:ci