Now to get the docker image to build correctly again.
All checks were successful
CICD Start / Sanity and Base Decision (pull_request) Successful in 1m50s

Signed-off-by: copilotcoder <copilotcoder@darkhelm.org>
This commit is contained in:
copilotcoder
2026-06-11 14:49:13 -04:00
parent 5296b3b672
commit 189d6559d4
2 changed files with 19 additions and 33 deletions

View File

@@ -266,7 +266,22 @@ jobs:
cd /workspace/frontend &&
if [ -d 'tests/e2e' ] || grep -q 'playwright' package.json; then
yarn playwright --version &&
timeout 300 yarn playwright install chromium &&
browser_ok=false &&
for i in 1 2 3; do
echo 'Playwright browser install attempt' \"\$i\"'/3' &&
if timeout 1800 yarn playwright install chromium; then
browser_ok=true
break
fi
if [ \"\$i\" -lt 3 ]; then
echo 'Playwright install attempt failed; retrying in 20s'
sleep 20
fi
done &&
if [ \"\$browser_ok\" != 'true' ]; then
echo '❌ Playwright browser install failed after 3 attempts'
exit 1
fi &&
yarn test:e2e --reporter=list --timeout=90000
else
echo 'No E2E tests found'

View File

@@ -131,39 +131,10 @@ RUN echo "=== Installing Global Development Tools ===" && \
which prettier && \
echo "✓ Global Node.js development tools installed via npm"
# Install Playwright browser runtime in bounded, retryable phases.
# Splitting deps/browser install gives better logs and avoids long silent hangs.
RUN set -eu && \
echo "=== Installing Playwright Browsers ===" && \
# Keep base image deterministic: browser binaries are installed at E2E runtime.
RUN echo "=== Skipping Playwright Browser Preinstall In Base Image ===" && \
playwright --version && \
deps_ok=0 && \
for i in 1 2 3; do \
echo "Attempt $i: playwright system dependencies"; \
if timeout 900 playwright install-deps chromium; then \
deps_ok=1; \
break; \
fi; \
if [ "$i" -lt 3 ]; then \
echo "Attempt $i failed for install-deps, retrying in 15s"; \
sleep 15; \
fi; \
done && \
[ "$deps_ok" -eq 1 ] || (echo "❌ playwright install-deps failed after 3 attempts" && exit 1) && \
browser_ok=0 && \
for i in 1 2 3; do \
echo "Attempt $i: playwright chromium browser"; \
if timeout 1200 playwright install chromium; then \
browser_ok=1; \
break; \
fi; \
if [ "$i" -lt 3 ]; then \
echo "Attempt $i failed for browser install, retrying in 20s"; \
sleep 20; \
fi; \
done && \
[ "$browser_ok" -eq 1 ] || (echo "❌ playwright browser install failed after 3 attempts" && exit 1) && \
playwright install --list && \
echo "✓ Playwright browsers installed and cached in base image"
echo "Browser binaries are installed in the E2E test job to avoid flaky base-image builds"
# Pre-install common Python development dependencies globally
# These are stable tools that rarely change and take time to compile