Optimizing build memory usage.
Some checks failed
Tests / YAML Syntax Check (push) Has been skipped
Tests / TOML Syntax Check (push) Has been skipped
Tests / Backend Tests (push) Has been skipped
Tests / Trailing Whitespace Check (push) Has been skipped
Tests / No Docstring Types Check (push) Has been skipped
Tests / ESLint Check (push) Has been skipped
Tests / Prettier Format Check (push) Has been skipped
Tests / Build and Push CICD Image (push) Failing after 8m8s
Tests / End of File Check (push) Has been skipped
Tests / TypeScript Type Check (push) Has been skipped
Tests / TSDoc Lint Check (push) Has been skipped
Tests / Mixed Line Ending Check (push) Has been skipped
Tests / TOML Formatting Check (push) Has been skipped
Tests / Ruff Linting (push) Has been skipped
Tests / Ruff Format Check (push) Has been skipped
Tests / Pyright Type Check (push) Has been skipped
Tests / Darglint Docstring Check (push) Has been skipped
Tests / Frontend Tests (push) Has been skipped
Tests / Backend Doctests (push) Has been skipped
Tests / Integration Tests (push) Has been skipped
Tests / End-to-End Tests (push) Has been skipped
Some checks failed
Tests / YAML Syntax Check (push) Has been skipped
Tests / TOML Syntax Check (push) Has been skipped
Tests / Backend Tests (push) Has been skipped
Tests / Trailing Whitespace Check (push) Has been skipped
Tests / No Docstring Types Check (push) Has been skipped
Tests / ESLint Check (push) Has been skipped
Tests / Prettier Format Check (push) Has been skipped
Tests / Build and Push CICD Image (push) Failing after 8m8s
Tests / End of File Check (push) Has been skipped
Tests / TypeScript Type Check (push) Has been skipped
Tests / TSDoc Lint Check (push) Has been skipped
Tests / Mixed Line Ending Check (push) Has been skipped
Tests / TOML Formatting Check (push) Has been skipped
Tests / Ruff Linting (push) Has been skipped
Tests / Ruff Format Check (push) Has been skipped
Tests / Pyright Type Check (push) Has been skipped
Tests / Darglint Docstring Check (push) Has been skipped
Tests / Frontend Tests (push) Has been skipped
Tests / Backend Doctests (push) Has been skipped
Tests / Integration Tests (push) Has been skipped
Tests / End-to-End Tests (push) Has been skipped
Signed-off-by: Cliff Hill <xlorep@darkhelm.org>
This commit is contained in:
@@ -28,6 +28,9 @@ secrets/
|
||||
**/node_modules/
|
||||
**/dist/
|
||||
**/build/
|
||||
**/.yarn/cache/
|
||||
**/.yarn/install-state.gz
|
||||
**/yarn-cache/
|
||||
|
||||
# IDE files
|
||||
.vscode/
|
||||
|
||||
@@ -38,6 +38,12 @@ RUN apt-fast update && apt-fast install -y \
|
||||
tzdata \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Configure system for memory-intensive builds
|
||||
RUN echo "vm.overcommit_memory=1" >> /etc/sysctl.conf && \
|
||||
echo "vm.max_map_count=262144" >> /etc/sysctl.conf && \
|
||||
sysctl -w vm.overcommit_memory=1 && \
|
||||
sysctl -w vm.max_map_count=262144
|
||||
|
||||
# Install Python 3.13 with retry and fallback mechanisms
|
||||
RUN for i in 1 2 3; do \
|
||||
echo "Attempt $i: Adding deadsnakes PPA..." && \
|
||||
@@ -75,6 +81,13 @@ RUN corepack enable \
|
||||
&& corepack prepare yarn@stable --activate \
|
||||
&& yarn set version berry
|
||||
|
||||
# Configure Yarn globally for CI performance
|
||||
RUN yarn config set httpTimeout 60000 && \
|
||||
yarn config set networkTimeout 60000 && \
|
||||
yarn config set enableGlobalCache false && \
|
||||
yarn config set compressionLevel 0 && \
|
||||
export NODE_OPTIONS="--max-old-space-size=2048"
|
||||
|
||||
# Install uv package manager globally
|
||||
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
|
||||
|
||||
@@ -117,7 +130,39 @@ RUN uv pip install -e .
|
||||
|
||||
# Set up frontend dependencies
|
||||
WORKDIR /workspace/frontend
|
||||
RUN yarn install --immutable
|
||||
|
||||
# Create temporary swap file for memory-intensive yarn install
|
||||
RUN dd if=/dev/zero of=/tmp/swapfile bs=1M count=1024 2>/dev/null && \
|
||||
mkswap /tmp/swapfile && \
|
||||
swapon /tmp/swapfile || echo "Swap setup failed, continuing without swap"
|
||||
|
||||
# Configure Yarn for CI environment with memory optimizations
|
||||
RUN echo "# CI optimizations" >> .yarnrc.yml && \
|
||||
echo "httpTimeout: 60000" >> .yarnrc.yml && \
|
||||
echo "networkTimeout: 60000" >> .yarnrc.yml && \
|
||||
echo "enableGlobalCache: false" >> .yarnrc.yml && \
|
||||
echo "compressionLevel: 0" >> .yarnrc.yml && \
|
||||
echo "nmMode: hardlinks-local" >> .yarnrc.yml
|
||||
|
||||
# Install frontend dependencies with memory optimizations and retry mechanism
|
||||
RUN export NODE_OPTIONS="--max-old-space-size=2048 --gc-interval=100" && \
|
||||
export YARN_ENABLE_NETWORK=1 && \
|
||||
for i in 1 2 3; do \
|
||||
echo "Attempt $i: Installing frontend dependencies..." && \
|
||||
yarn install --immutable \
|
||||
--network-timeout 60000 \
|
||||
--cache-folder /tmp/yarn-cache \
|
||||
--network-concurrency 1 \
|
||||
--verbose \
|
||||
&& break || \
|
||||
(echo "Attempt $i failed, cleaning up and retrying..." && \
|
||||
rm -rf node_modules .yarn/cache .yarn/install-state.gz /tmp/yarn-cache && \
|
||||
yarn cache clean --all 2>/dev/null || true && \
|
||||
sleep 15); \
|
||||
done && \
|
||||
rm -rf /tmp/yarn-cache .yarn/cache && \
|
||||
swapoff /tmp/swapfile 2>/dev/null || true && \
|
||||
rm -f /tmp/swapfile
|
||||
|
||||
# Verify all tools are working with the project
|
||||
RUN cd /workspace/backend && \
|
||||
|
||||
Reference in New Issue
Block a user