docs(deploy): keep the research record out of the app Space #70
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "0.8.23" | |
| - name: Set up Python | |
| run: uv python install 3.13 | |
| - name: Sync dependencies | |
| run: uv sync --extra dev | |
| - name: Ruff check | |
| run: uv run ruff check src tests scripts app | |
| - name: Ruff format check | |
| run: uv run ruff format --check src tests scripts app | |
| - name: Mypy strict | |
| run: uv run mypy src app scripts | |
| - name: Pytest | |
| run: uv run pytest --cov=src/nl_sql --cov-report=term-missing --cov-fail-under=85 | |
| repo-hygiene: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Verify repo-hygiene detector | |
| run: python3 scripts/check_repo_hygiene.py --self-test | |
| - name: Check no internal notes are tracked | |
| run: python3 scripts/check_repo_hygiene.py | |
| - name: Verify compare_results gate detector | |
| run: python3 scripts/check_no_raw_compare.py --self-test | |
| - name: No raw compare_results outside scripts/archive/ | |
| run: python3 scripts/check_no_raw_compare.py | |
| pg-integration: | |
| # Live Postgres 16 proof that the pipeline connection is genuinely read-only. | |
| # These tests skip locally (no NL_SQL_PG_TEST_DSN); here they run for real. | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| services: | |
| postgres: | |
| image: postgres:16-alpine | |
| env: | |
| POSTGRES_DB: nl_sql_demo | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd "pg_isready -U postgres -d nl_sql_demo" | |
| --health-interval 5s | |
| --health-timeout 3s | |
| --health-retries 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "0.8.23" | |
| - name: Set up Python | |
| run: uv python install 3.13 | |
| - name: Sync dependencies | |
| run: uv sync --extra dev | |
| - name: Read-only Postgres proof | |
| env: | |
| NL_SQL_PG_TEST_DSN: postgresql://postgres:postgres@localhost:5432/nl_sql_demo | |
| run: uv run pytest tests/test_postgres_readonly.py -v |