From e16141cdbd78119de921514593716280650dad72 Mon Sep 17 00:00:00 2001 From: Cliff Hill Date: Sat, 1 Nov 2025 16:13:30 -0400 Subject: [PATCH] Better dependency processing for the frontend in the CICD. Signed-off-by: Cliff Hill --- Dockerfile.cicd | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Dockerfile.cicd b/Dockerfile.cicd index a96ef74..b12c400 100644 --- a/Dockerfile.cicd +++ b/Dockerfile.cicd @@ -165,9 +165,9 @@ RUN --mount=type=secret,id=ssh_private_key \ # Copy backend files but skip .venv if it exists find "$item" -mindepth 1 -maxdepth 1 ! -name ".venv" -exec cp -rf {} /workspace/backend/ \;; \ elif [ "$basename_item" = "frontend" ] && ([ -d "/workspace/frontend/node_modules" ] || [ -f "/workspace/frontend/.pnp.cjs" ]); then \ - echo "Copying frontend files while preserving dependencies (.yarn, node_modules, Yarn PnP files)..."; \ - # Copy frontend files but skip dependency directories and Yarn PnP state files - find "$item" -mindepth 1 -maxdepth 1 ! -name "node_modules" ! -name ".yarn" ! -name ".pnp.cjs" ! -name ".pnp.loader.mjs" -exec cp -rf {} /workspace/frontend/ \;; \ + echo "Copying frontend files (will regenerate Yarn state after)..."; \ + # Copy all frontend files normally - we'll regenerate Yarn state afterward + cp -rf "$item"/* /workspace/frontend/; \ else \ echo "Copying $basename_item..."; \ cp -rf "$item" /workspace/; \ @@ -181,6 +181,17 @@ RUN --mount=type=secret,id=ssh_private_key \ echo "✓ Full source code copied, dependencies preserved" && \ rm -rf /tmp/fullrepo ~/.ssh +# PHASE 3.5: Regenerate Yarn PnP state after source code update +WORKDIR /workspace/frontend +RUN if [ -f "package.json" ] && [ -f ".pnp.cjs" ]; then \ + echo "=== Regenerating Yarn PnP State After Source Code Update ===" && \ + echo "Source package.json and installed dependencies may have differences..." && \ + yarn install --immutable && \ + echo "✓ Yarn PnP state regenerated successfully - tools should now work"; \ + else \ + echo "ℹ No Yarn PnP setup detected, skipping state regeneration"; \ + fi + # PHASE 4: Install backend package in development mode (requires full source) WORKDIR /workspace/backend RUN echo "=== Installing Backend Package in Development Mode ===" && \