name: CI on: push: branches: [main] pull_request: workflow_dispatch: jobs: backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.11" cache: pip - name: Install dependencies run: pip install -r requirements.txt flake8 pytest - name: Lint (critical errors only) run: flake8 src --select=E9,F63,F7,F82 --show-source - name: Unit tests run: python -m pytest tests -q - name: Import smoke test run: python -c "from src.api.app import app; from src.workflow.graph import app as graph_app; print('imports OK')" frontend: runs-on: ubuntu-latest defaults: run: working-directory: frontend steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" cache: npm cache-dependency-path: frontend/package-lock.json - name: Install dependencies run: npm ci --legacy-peer-deps - name: Lint continue-on-error: true run: npm run lint - name: Build run: npm run build