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/
|
**/node_modules/
|
||||||
**/dist/
|
**/dist/
|
||||||
**/build/
|
**/build/
|
||||||
|
**/.yarn/cache/
|
||||||
|
**/.yarn/install-state.gz
|
||||||
|
**/yarn-cache/
|
||||||
|
|
||||||
# IDE files
|
# IDE files
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|||||||
@@ -38,6 +38,12 @@ RUN apt-fast update && apt-fast install -y \
|
|||||||
tzdata \
|
tzdata \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& 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
|
# Install Python 3.13 with retry and fallback mechanisms
|
||||||
RUN for i in 1 2 3; do \
|
RUN for i in 1 2 3; do \
|
||||||
echo "Attempt $i: Adding deadsnakes PPA..." && \
|
echo "Attempt $i: Adding deadsnakes PPA..." && \
|
||||||
@@ -75,6 +81,13 @@ RUN corepack enable \
|
|||||||
&& corepack prepare yarn@stable --activate \
|
&& corepack prepare yarn@stable --activate \
|
||||||
&& yarn set version berry
|
&& 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
|
# Install uv package manager globally
|
||||||
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
|
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
|
||||||
|
|
||||||
@@ -117,7 +130,39 @@ RUN uv pip install -e .
|
|||||||
|
|
||||||
# Set up frontend dependencies
|
# Set up frontend dependencies
|
||||||
WORKDIR /workspace/frontend
|
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
|
# Verify all tools are working with the project
|
||||||
RUN cd /workspace/backend && \
|
RUN cd /workspace/backend && \
|
||||||
|
|||||||
Reference in New Issue
Block a user