115 lines
3.1 KiB
YAML
115 lines
3.1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
lint:
|
|
name: lint
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install project dependencies
|
|
run: uv sync --extra dev
|
|
- name: Run ruff lint
|
|
run: uv run ruff check .
|
|
|
|
contract-regression:
|
|
name: contract-regression
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install project dependencies
|
|
run: uv sync --extra dev
|
|
- name: Run MCP response contract regression tests
|
|
run: uv run pytest tests/test_contract_regression.py
|
|
|
|
pytest-regression:
|
|
name: pytest-regression
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install project dependencies
|
|
run: uv sync --extra dev --extra dashboard
|
|
- name: Run pytest regression suite
|
|
run: uv run pytest --ignore=tests/test_dashboard_app.py
|
|
|
|
dashboard-app-test:
|
|
name: dashboard-app-test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install project dependencies
|
|
run: uv sync --extra dev --extra dashboard
|
|
- name: Run Streamlit AppTest with synthetic fixture DB
|
|
run: uv run pytest tests/test_dashboard_app.py
|
|
|
|
dashboard-http-smoke:
|
|
name: dashboard-http-smoke
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install project dependencies
|
|
run: uv sync --extra dashboard
|
|
- name: Run dashboard HTTP smoke with synthetic fixture DB
|
|
run: uv run python scripts/ci_dashboard_http_smoke.py --host 127.0.0.1 --port 18501 --timeout 45
|
|
|
|
db-safety-smoke:
|
|
name: db-safety-smoke
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@v5
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
- name: Install project dependencies
|
|
run: uv sync
|
|
- name: Run DB safety smoke with synthetic temp DBs
|
|
run: uv run python scripts/ci_db_safety_smoke.py --timeout 45
|