chore: run the heavy root scripts under concurrency groups (#15071)

The repository is checked out into many worktrees at once, and a second
Rust build or TypeScript test run on one machine only takes cores and
memory from the first. The TypeScript test scripts additionally share
the `../pnpm_tmp` scratch directory across worktrees and wipe it on
startup, so two of them cannot overlap at all.

Only root-only script names carry a group. An entry for a name a
workspace package also defines would drop that task's default
`dependsOn: ['^<name>']` ordering and take a slot per project,
serializing every recursive run of it.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Zoltan KochanandClaude Opus 5 authored and GitHub committed 2026-09-18 19:25:02 +02:00
1 parent b4438d438b
commit f9c87a24ba
1 file changed
+62
+62
View File
@@ -78,9 +78,71 @@ pipelines:
rust-dylint: [ci:rust-dylint]
build-pnpr: [ci:build-pnpr]
# Every entry names a script the root manifest alone defines. A name a
# workspace package also defines must not appear here: the entry would drop
# that task's default `dependsOn: ['^<name>']` ordering, and each project's
# run of it would take a slot of the group, serializing a recursive run.
tasks:
ci:compile:
concurrencyGroup: typescript
ci:lint:
dependsOn: [ci:compile]
concurrencyGroup: typescript
ci:test-all:
concurrencyGroup: typescript
ci:test-branch:
concurrencyGroup: typescript
ci:test-chunk:
concurrencyGroup: typescript
test-all:
concurrencyGroup: typescript
test-branch:
concurrencyGroup: typescript
test-pkgs-all:
concurrencyGroup: typescript
test-pkgs-all-report-summary:
concurrencyGroup: typescript
test-pkgs-branch:
concurrencyGroup: typescript
build:pnpm:
concurrencyGroup: cargo
check:rust:
concurrencyGroup: cargo
fix:rust:
concurrencyGroup: cargo
lint:rust:
concurrencyGroup: cargo
pre-push:rust:
concurrencyGroup: cargo
ready:rust:
concurrencyGroup: cargo
test:rust:
concurrencyGroup: cargo
test:rust-affected:
concurrencyGroup: cargo
test:rust-smoke:
concurrencyGroup: cargo
ci:build-pnpr:
concurrencyGroup: cargo
ci:pnpr-test:
concurrencyGroup: cargo
ci:rust-clippy:
concurrencyGroup: cargo
ci:rust-doc:
concurrencyGroup: cargo
ci:rust-dylint:
concurrencyGroup: cargo
ci:rust-test:
concurrencyGroup: cargo
# The repository is checked out into many worktrees at once, and a second
# Rust build or TypeScript test run on the same machine only takes cores and
# memory from the first. The TypeScript test scripts also share the
# `../pnpm_tmp` scratch directory across worktrees, which one of them wipes
# on startup. A task past the limit waits for a slot instead of starting.
concurrencyGroups:
cargo: 1
typescript: 1
# Native workspace release management (consumed by `pnpm change` / `pnpm version -r`).
# The Rust CLI wrapper is the workspace package `pacquet` (published to npm as