name: Jyotish Skill CI on: push: branches: [main] pull_request: branches: [main] 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: '20' cache: npm cache-dependency-path: jyotish-app/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 jyotish-app - name: Print environment diagnostics run: | python --version node --version npm --version npm --prefix jyotish-app exec -- vite --version test -x jyotish-app/node_modules/.bin/vite - 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 2>&1 | tee artifacts/quick-quality-gate.log - name: Upload quick quality gate diagnostics if: always() uses: actions/upload-artifact@v4 with: name: quick-quality-gate-diagnostics path: artifacts/ - name: Build frontend run: npm run build --prefix jyotish-app - name: Build Python package run: python -m build --no-isolation