diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2038336..a5ff698 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,13 +22,23 @@ jobs: python-version: '3.12' cache: pip + - name: Install system dependencies + run: sudo apt-get install -y libsqlcipher-dev + + - name: Install circuitforge-core + run: pip install git+https://git.opensourcesolarpunk.com/Circuit-Forge/circuitforge-core.git@main + - name: Install dependencies - run: pip install -r requirements.txt + run: pip install -r requirements.txt ruff pytest - name: Lint run: ruff check . - name: Test + env: + STAGING_DB: /tmp/peregrine-ci.db + CLOUD_DATA_ROOT: /tmp/peregrine-ci-cloud + PEREGRINE_LOG_DIR: /tmp/peregrine-ci-logs run: pytest tests/ -v --tb=short frontend: diff --git a/pyproject.toml b/pyproject.toml index d3f3a21..0c9a1e1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,8 +6,9 @@ exclude = ["app/"] [tool.ruff.lint.per-file-ignores] # dev-api.py / dev_api.py (symlink): E702 semicolons in compact Pydantic model # definitions — intentional style for dense data models with many simple fields. -"dev-api.py" = ["E702"] -"dev_api.py" = ["E702"] +# E402: mid-file module-level imports are intentional in dev-api.py for test patchability. +"dev-api.py" = ["E702", "E402"] +"dev_api.py" = ["E702", "E402"] # finetune_local.py: E402 ML libs (torch, datasets, trl) are imported after # runtime CUDA / Unsloth availability checks — conditional import pattern.