SPB Git

spb/qwhpi Public

QHPI — Quebec Housing Price Index: quality-adjusted, hierarchically pooled housing price indexes.

Python 63.9% TypeScript 25.4% CSS 5.5% TeX 3.5% SQL 0.8% Makefile 0.5% Dockerfile 0.5%
1.5 KB · 45 lines yaml
Raw Blame History
1# =============================================================================2# QWHPI — Quebec Weekly Housing Price Index3# Author  : Simon-Pierre Boucher4# Contact : contact@spboucher.ai5# File    : ops/ci/ci.yml6# Purpose : CI pipeline — headers, lint, type-check, tests, smoke pipeline.7#           (Symlink/copy to .github/workflows/ci.yml when hosted on GitHub.)8# =============================================================================910name: qwhpi-ci11on: [push, pull_request]1213jobs:14  checks:15    runs-on: ubuntu-latest16    steps:17      - uses: actions/checkout@v418      - uses: actions/setup-python@v519        with: { python-version: "3.12" }20      - uses: actions/setup-node@v421        with: { node-version: "22" }2223      - name: Install engine + api deps24        run: |25          pip install polars pandas numpy pyarrow scipy statsmodels pyfixest \26                      fastapi uvicorn pydantic pytest httpx ruff mypy2728      - name: Header check (mandatory)29        run: python scripts/check_headers.py3031      - name: Ruff lint32        run: ruff check engine api scripts ops3334      - name: Mypy (engine core)35        run: mypy engine/src/qwhpi --ignore-missing-imports || true3637      - name: Engine unit tests38        run: cd engine && python -m pytest tests -q3940      - name: Smoke pipeline (synthetic small sample)41        run: cd engine && python -m pytest tests/test_smoke_pipeline.py -q4243      - name: TypeScript check44        run: cd web && npm ci && npx tsc --noEmit45