Limit pack concurrency to 10 in build-workspace command

Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
This commit is contained in:
Eric Peterson
2024-03-13 14:32:53 +01:00
parent 7e3e3fd327
commit b0875e57c3
4 changed files with 12 additions and 2 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Fixed a bug that could cause the `build-workspace` command to fail when invoked with `--alwaysYarnPack` enabled in environments with limited resources.
+1
View File
@@ -112,6 +112,7 @@
"node-libs-browser": "^2.2.1",
"npm-packlist": "^5.0.0",
"ora": "^5.3.0",
"p-limit": "^3.1.0",
"p-queue": "^6.6.2",
"postcss": "^8.1.0",
"process": "^0.11.10",
@@ -21,6 +21,7 @@ import {
resolve as resolvePath,
relative as relativePath,
} from 'path';
import pLimit from 'p-limit';
import { tmpdir } from 'os';
import tar, { CreateOptions, FileOptions } from 'tar';
import partition from 'lodash/partition';
@@ -352,9 +353,11 @@ async function moveToDistWorkspace(
}
// Repacking in parallel is much faster and safe for all packages outside of the Backstage repo
// Limit concurrency to 10 to avoid resource exhaustion on larger monorepos.
const limit = pLimit(10);
await Promise.all(
safePackages.map(async (target, index) =>
pack(target, `temp-package-${index}.tgz`),
safePackages.map((target, index) =>
limit(() => pack(target, `temp-package-${index}.tgz`)),
),
);
}
+1
View File
@@ -3691,6 +3691,7 @@ __metadata:
nodemon: ^3.0.1
npm-packlist: ^5.0.0
ora: ^5.3.0
p-limit: ^3.1.0
p-queue: ^6.6.2
postcss: ^8.1.0
process: ^0.11.10