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
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:
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user