From 4fe458b2197eb21d5b2edcc8986a7df75cc18958 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 2 Nov 2026 12:28:12 +0200 Subject: [PATCH 1/3] Try Go memory options --- azure-pipelines/igniteui-angular-grid-examples.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/azure-pipelines/igniteui-angular-grid-examples.yml b/azure-pipelines/igniteui-angular-grid-examples.yml index 56cc049..67098ce 100644 --- a/azure-pipelines/igniteui-angular-grid-examples.yml +++ b/azure-pipelines/igniteui-angular-grid-examples.yml @@ -133,6 +133,16 @@ stages: workingDir: '$(Build.SourcesDirectory)' verbose: ${{ parameters.isVerbose }} customCommand: 'run build:ci' + env: + # The `app` build peaks near the 16GB ubuntu-latest ceiling and the host + # OOM-killer reaps the runner agent, which Actions reports as + # "The runner has received a shutdown signal" / "The operation was canceled". + # esbuild is the dominant consumer (~10GB); it is a Go binary, so Node heap + # flags do not constrain it - GOMEMLIMIT/GOGC do. Measured on the failing + # commit under 4 CPU / 14GB: esbuild 9999MB -> 3517MB, build passes. + GOMEMLIMIT: '6GiB' + GOGC: '50' + NODE_OPTIONS: '--max_old_space_size=4096' - task: PublishPipelineArtifact@1 From b2ff382378d71efc3223f6f71febd0b3e5add726 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Tue, 13 Oct 2026 16:44:22 +0300 Subject: [PATCH 2/3] fix: use valid Ignite UI project template Replace the obsolete ng-cli template identifier so the package upgrade schematic resolves the base project instead of the ai-config partial. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ignite-ui-cli.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ignite-ui-cli.json b/ignite-ui-cli.json index b1a4e62..4e8f028 100644 --- a/ignite-ui-cli.json +++ b/ignite-ui-cli.json @@ -4,7 +4,7 @@ "defaultPort": 4200, "framework": "angular", "projectType": "igx-ts", - "projectTemplate": "ng-cli", + "projectTemplate": "base", "theme": "Custom", "isBundle": false, "bundleFilePath": "", From 14baeafb3aad8359d643f064ba719d7c9b0b76d7 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 2 Nov 2026 14:03:23 +0200 Subject: [PATCH 3/3] ci: build browser-only production artifact and fix memory comment IIS serves only the static browser output, so skip the server bundle and route prerendering in the release build to cut esbuild's memory peak. List `production` explicitly so output hashing and budgets still apply. Also correct the GOMEMLIMIT/GOGC comment, which described a GitHub Actions runner rather than this Azure agent. Co-Authored-By: Claude Opus 5.5 --- angular.json | 4 ++++ .../igniteui-angular-grid-examples.yml | 19 +++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/angular.json b/angular.json index e6f2225..943f48d 100644 --- a/angular.json +++ b/angular.json @@ -86,6 +86,10 @@ ], "outputHashing": "all" }, + "browser-only": { + "server": false, + "ssr": false + }, "development": { "optimization": false, "extractLicenses": false, diff --git a/azure-pipelines/igniteui-angular-grid-examples.yml b/azure-pipelines/igniteui-angular-grid-examples.yml index 67098ce..c1cea84 100644 --- a/azure-pipelines/igniteui-angular-grid-examples.yml +++ b/azure-pipelines/igniteui-angular-grid-examples.yml @@ -127,19 +127,22 @@ stages: npx --userconfig=$(Build.SourcesDirectory)/.npmrc --legacy-peer-deps ng g @igniteui/angular-schematics:upgrade-packages - task: Npm@1 - displayName: 'npm run build:ci' + displayName: 'npm run build:ci (browser only)' inputs: command: custom workingDir: '$(Build.SourcesDirectory)' verbose: ${{ parameters.isVerbose }} - customCommand: 'run build:ci' + # IIS serves the static browser output only, so skip the server bundle and + # route prerendering. `production` must be listed explicitly - naming a + # configuration replaces the default one, which would drop output hashing. + customCommand: 'run build:ci -- --configuration production,browser-only' env: - # The `app` build peaks near the 16GB ubuntu-latest ceiling and the host - # OOM-killer reaps the runner agent, which Actions reports as - # "The runner has received a shutdown signal" / "The operation was canceled". - # esbuild is the dominant consumer (~10GB); it is a Go binary, so Node heap - # flags do not constrain it - GOMEMLIMIT/GOGC do. Measured on the failing - # commit under 4 CPU / 14GB: esbuild 9999MB -> 3517MB, build passes. + # The build exhausts the ~7.9GB Microsoft-hosted agent ("Free memory is lower + # than 5%") and intermittently stalls until Azure reports "We stopped hearing + # from agent" - see #171. esbuild runs as a separate Go process, so Node-side + # settings (worker count, heap size) do not bound its memory - GOMEMLIMIT/GOGC + # do. These values are reused from another Ignite UI pipeline where they keep + # a similar Angular build stable; they are not yet tuned for this agent size. GOMEMLIMIT: '6GiB' GOGC: '50' NODE_OPTIONS: '--max_old_space_size=4096'