Better dependency processing for the frontend in the CICD.
Some checks failed
Tests / Build and Push CICD Base Image (push) Successful in 1m9s
Tests / Build and Push CICD Complete Image (push) Successful in 43m33s
Tests / Prettier Format Check (push) Successful in 1m1s
Tests / Trailing Whitespace Check (push) Successful in 46s
Tests / End of File Check (push) Successful in 39s
Tests / YAML Syntax Check (push) Successful in 33s
Tests / TOML Syntax Check (push) Successful in 42s
Tests / Mixed Line Ending Check (push) Successful in 49s
Tests / TOML Formatting Check (push) Successful in 31s
Tests / Ruff Linting (push) Successful in 32s
Tests / Ruff Format Check (push) Successful in 34s
Tests / Pyright Type Check (push) Successful in 1m12s
Tests / Darglint Docstring Check (push) Successful in 41s
Tests / No Docstring Types Check (push) Successful in 40s
Tests / ESLint Check (push) Successful in 1m13s
Tests / Backend Tests (push) Successful in 52s
Tests / Frontend Tests (push) Successful in 1m51s
Tests / Backend Doctests (push) Successful in 43s
Tests / TypeScript Type Check (push) Successful in 25m30s
Tests / End-to-End Tests (push) Failing after 16m11s
Tests / TSDoc Lint Check (push) Successful in 40m44s
Tests / Integration Tests (push) Successful in 38m2s

Signed-off-by: Cliff Hill <xlorep@darkhelm.org>
This commit is contained in:
2025-11-01 16:13:30 -04:00
parent 125e889501
commit e16141cdbd

View File

@@ -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 ===" && \