fix(ci): replace local -e path with Forgejo VCS URL for circuitforge-core
Some checks failed
CI / test (push) Has been cancelled

CI checks out only the peregrine repo — ../circuitforge-core doesn't exist,
causing 'pip install -r requirements.txt' to fail.

requirements.txt now uses git+https://...@main as the fallback for CI and
bare pip installs. Dockerfile.cfcore installs cfcore from the local COPY
first (skipping the requirements.txt line) to avoid a redundant network
fetch during Docker builds.
This commit is contained in:
pyr0ball 2026-04-01 13:22:06 -07:00
parent 88c662f08d
commit a153546335
2 changed files with 11 additions and 4 deletions

View file

@ -20,12 +20,15 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
gcc libffi-dev curl libsqlcipher-dev \ gcc libffi-dev curl libsqlcipher-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Copy circuitforge-core first so pip can resolve the -e ../circuitforge-core # Copy circuitforge-core and install it from the local path before requirements.txt.
# reference in requirements.txt (installed editable at /circuitforge-core) # requirements.txt has a git+https:// fallback URL for CI (where circuitforge-core
# is not a sibling directory), but Docker always has the local copy available here.
COPY circuitforge-core/ /circuitforge-core/ COPY circuitforge-core/ /circuitforge-core/
RUN pip install --no-cache-dir /circuitforge-core
COPY peregrine/requirements.txt . COPY peregrine/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt # Skip the cfcore line — already installed above from the local copy
RUN grep -v 'circuitforge-core' requirements.txt | pip install --no-cache-dir -r /dev/stdin
# Install Playwright browser (cached separately from Python deps so requirements # Install Playwright browser (cached separately from Python deps so requirements
# changes don't bust the ~600900 MB Chromium layer and vice versa) # changes don't bust the ~600900 MB Chromium layer and vice versa)

View file

@ -3,7 +3,11 @@
# Keep in sync with environment.yml # Keep in sync with environment.yml
# ── CircuitForge shared core ─────────────────────────────────────────────── # ── CircuitForge shared core ───────────────────────────────────────────────
-e ../circuitforge-core # Local dev / Docker (parent-context build): path install works because
# circuitforge-core/ is a sibling directory.
# CI / fresh checkouts: falls back to the Forgejo VCS URL below.
# To use local editable install run: pip install -e ../circuitforge-core
git+https://git.opensourcesolarpunk.com/Circuit-Forge/circuitforge-core.git@main
# ── Web UI ──────────────────────────────────────────────────────────────── # ── Web UI ────────────────────────────────────────────────────────────────
streamlit>=1.35 streamlit>=1.35