name: Jyotish Skill CI on: push: branches: [staging] workflow_dispatch: jobs: validate: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Set up Node uses: actions/setup-node@v4 with: node-version: '22' cache: npm cache-dependency-path: frontend/package-lock.json - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install -r requirements.txt -r requirements-dev.txt npm ci --prefix frontend - name: Print environment diagnostics run: | python --version node --version npm --version - name: Run Ruff lint for quality gate files run: ruff check scripts/run_quality_gate.py tests/test_varga_bphs.py tests/test_ashtakavarga_invariants.py tests/test_cli_smoke.py tests/test_yoga_rules_integrity.py - name: Run Python syntax check run: python -m py_compile scripts/*.py jyotish_vedic/*.py mcp_server.py - name: Run quick quality gate run: | mkdir -p artifacts python scripts/run_quality_gate.py --profile quick --skip-yoga-logic --skip-frontend-runtime 2>&1 | tee artifacts/quick-quality-gate.log - name: Run commercial privacy artifact gate run: python scripts/commercial_privacy_artifact_scan.py --json - name: Upload quick quality gate diagnostics if: always() uses: actions/upload-artifact@v4 with: name: quick-quality-gate-diagnostics path: artifacts/ - name: Validate production web env: NEXT_PUBLIC_SUPABASE_URL: https://ci-placeholder.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY: ci-placeholder run: | npm test --prefix frontend npm run lint --prefix frontend npm run build --prefix frontend - name: Build Python package run: python -m build --no-isolation