Skip to content

feat(onboarding): auto-detect model when --model omitted (parity) #61

feat(onboarding): auto-detect model when --model omitted (parity)

feat(onboarding): auto-detect model when --model omitted (parity) #61

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint (Ruff)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
# Pin ruff so I001 import-sort behaviour matches what contributors run locally —
# astral-sh/ruff-action@v1 installs the latest ruff, which disagreed with the
# pinned dev version on __init__.py import ordering and kept this job red.
- name: Install ruff
run: pip install ruff==0.15.14
- name: Lint
run: ruff check src tests
test:
name: Tests (pytest)
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: pyproject.toml
- name: Install dependencies
run: pip install -e ".[dev]" --quiet
- name: Run tests
run: pytest tests/ -v --tb=short
typecheck:
name: Type Check (mypy)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: pip
cache-dependency-path: pyproject.toml
- name: Install dependencies + mypy
run: pip install -e ".[dev]" mypy --quiet
- name: Type check
run: mypy src/iicp_client --ignore-missing-imports
security:
name: Dependency Security Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Audit dependencies
run: pip install pip-audit --quiet && pip-audit --requirement <(pip install -e . --dry-run 2>&1 | grep "^Would install" | sed 's/Would install //' | tr ' ' '\n' | sed 's/==/==/') || true
conformance-marks:
name: Conformance Mark Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Verify all test files reference SDK conformance marks
run: |
FAIL=0
for f in tests/test_*.py; do
if ! grep -q "SDK-0[1-9]\|SDK-1[0-9]\|ADR-016" "$f"; then
echo "MISSING conformance mark: $f"
FAIL=1
fi
done
if [ "$FAIL" -eq 0 ]; then
echo "All test files reference SDK conformance marks"
fi
exit $FAIL