system-prompts-and-models-o.../.github/workflows/dealix-ci.yml
Claude 2423896232
fix(ci): add import diagnostics + pin pytest-cov + verbose error output
Add diagnostic steps to CI:
- Print installed test dep versions after pip install
- Verify app.main import chain before running pytest
- Show --tb=short for better error visibility

Pin pytest-cov==5.0.0 to prevent breaking transitive dep updates.

https://claude.ai/code/session_01W1rJthWDkasijTdXCfxVHs
2026-04-17 05:46:10 +00:00

73 lines
2.1 KiB
YAML

# Runs when salesflow-saas/ changes (monorepo root)
name: Dealix CI
on:
push:
branches: [main]
paths:
- "salesflow-saas/**"
pull_request:
branches: [main]
paths:
- "salesflow-saas/**"
jobs:
backend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: salesflow-saas/backend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
pip install -r requirements.txt -r requirements-dev.txt
echo "--- Installed test deps ---"
pip show pytest pytest-asyncio pytest-cov aiosqlite httpx 2>/dev/null | grep -E "^(Name|Version):"
- name: Verify import chain
env:
DATABASE_URL: sqlite+aiosqlite:///./ci_verify.db
DEALIX_INTERNAL_API_TOKEN: ""
run: |
python -c "
from app.sqlite_patch import apply_patch; apply_patch()
from app.main import app; print('app.main import OK')
" || echo "IMPORT FAILED"
- name: Architecture Brief (governance validation)
working-directory: salesflow-saas
continue-on-error: true
run: python scripts/architecture_brief.py
- name: Pytest (full suite + launch scenarios)
env:
DATABASE_URL: sqlite+aiosqlite:///./ci_dealix.db
DEALIX_INTERNAL_API_TOKEN: ""
run: python -m pytest tests -q --tb=short
frontend:
runs-on: ubuntu-latest
defaults:
run:
working-directory: salesflow-saas/frontend
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
cache-dependency-path: salesflow-saas/frontend/package-lock.json
- name: Install
run: npm ci
- name: Lint
run: npm run lint
- name: Build
run: npm run build
- name: Install Playwright Chromium
run: npx playwright install --with-deps chromium
- name: E2E smoke (auth shell)
env:
CI: true
run: npm run test:e2e