From ef8f27122e7a90bb5b171468debaffc45b7b23b5 Mon Sep 17 00:00:00 2001 From: Doyle <873891+chrisdoyle@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:48:26 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=BE=20feat:=20Add=20Memory=20Configura?= =?UTF-8?q?tion=20Options=20for=20CI=20unit=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - responding to PR feedback from Copilot --- .env.example | 8 ++++++-- .github/workflows/build.yml | 2 +- Dockerfile.multi | 6 +++--- api/test/.env.test.example | 2 ++ api/test/jestSetup.js | 2 -- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.env.example b/.env.example index 7161eb1457..52b172b72c 100644 --- a/.env.example +++ b/.env.example @@ -72,8 +72,12 @@ DEBUG_CONSOLE=false # Node Options # #==============# -# Used to adjust Node.js memory configuration (default: 6144 MiB) -# https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-mib +# NOTE: NODE_MAX_OLD_SPACE_SIZE is NOT recognized by Node.js directly. +# This variable is used as a build argument for Docker or CI/CD workflows, +# and is NOT used by Node.js to set the heap size at runtime. +# To configure Node.js memory, use NODE_OPTIONS, e.g.: +# NODE_OPTIONS="--max-old-space-size=6144" +# See: https://nodejs.org/api/cli.html#--max-old-space-sizesize-in-mib NODE_MAX_OLD_SPACE_SIZE=6144 #===============# diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c44f00a3c9..a2131c4b98 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - run: | - docker build --build-arg RUNNER_VERSION=${{ env.RUNNER_VERSION }} --build-arg NODE_MAX_OLD_SPACE_SIZE=${{ secrets.NODE_MAX_OLD_SPACE_SIZE || 6144 }} -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/pwd9000-github-runner-lin:${{ env.RUNNER_VERSION }} . + docker build --build-arg RUNNER_VERSION=${{ env.RUNNER_VERSION }} -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/pwd9000-github-runner-lin:${{ env.RUNNER_VERSION }} . - name: 'Push container image to ACR' uses: azure/docker-login@v1 diff --git a/Dockerfile.multi b/Dockerfile.multi index 1e73e4ff2d..ac58aa21b6 100644 --- a/Dockerfile.multi +++ b/Dockerfile.multi @@ -1,6 +1,9 @@ # Dockerfile.multi # v0.8.1 +# Set configurable max-old-space-size with default +ARG NODE_MAX_OLD_SPACE_SIZE=6144 + # Base for all builds FROM node:20-alpine AS base-min # Install jemalloc @@ -8,9 +11,6 @@ RUN apk add --no-cache jemalloc # Set environment variable to use jemalloc ENV LD_PRELOAD=/usr/lib/libjemalloc.so.2 -# Set configurable max-old-space-size with default -ARG NODE_MAX_OLD_SPACE_SIZE=6144 - WORKDIR /app RUN apk --no-cache add curl RUN npm config set fetch-retry-maxtimeout 600000 && \ diff --git a/api/test/.env.test.example b/api/test/.env.test.example index 31d5813e71..587a739cc3 100644 --- a/api/test/.env.test.example +++ b/api/test/.env.test.example @@ -12,4 +12,6 @@ BAN_VIOLATIONS=true BAN_DURATION=7200000 BAN_INTERVAL=20 +# NODE_MAX_OLD_SPACE_SIZE is only used as a Docker build argument. +# Node.js does NOT recognize this environment variable for heap size. NODE_MAX_OLD_SPACE_SIZE=6144 diff --git a/api/test/jestSetup.js b/api/test/jestSetup.js index 506193b5e0..d62b8467ed 100644 --- a/api/test/jestSetup.js +++ b/api/test/jestSetup.js @@ -16,5 +16,3 @@ process.env.ALLOW_EMAIL_LOGIN = 'true'; // This can be overridden in individual tests if needed jest.setTimeout(30000); process.env.OPENAI_API_KEY = 'test'; - -process.env.NODE_MAX_OLD_SPACE_SIZE = '6144';