ci: spread cloud server verification across ten runners

Keep the same tests and one worker per job while reducing the longest verification lane. Preserve the separate chat partition and normal PR test grouping.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Devin Foley 2026-09-11 06:51:23 -07:00
parent a05b828bcd
commit 02bac43f91
3 changed files with 39 additions and 13 deletions

View File

@ -59,28 +59,48 @@ jobs:
matrix:
include:
# Split the long chat file by collected test locations, and balance
# the remaining server files across five runners. Normal PR/local
# the remaining server files across ten runners. Normal PR/local
# invocations retain their complete general-server group.
- group: general-server-without-chat
group_label: server (1/5)
group_label: server (1/10)
shard_index: 0
shard_count: 5
shard_count: 10
- group: general-server-without-chat
group_label: server (2/5)
group_label: server (2/10)
shard_index: 1
shard_count: 5
shard_count: 10
- group: general-server-without-chat
group_label: server (3/5)
group_label: server (3/10)
shard_index: 2
shard_count: 5
shard_count: 10
- group: general-server-without-chat
group_label: server (4/5)
group_label: server (4/10)
shard_index: 3
shard_count: 5
shard_count: 10
- group: general-server-without-chat
group_label: server (5/5)
group_label: server (5/10)
shard_index: 4
shard_count: 5
shard_count: 10
- group: general-server-without-chat
group_label: server (6/10)
shard_index: 5
shard_count: 10
- group: general-server-without-chat
group_label: server (7/10)
shard_index: 6
shard_count: 10
- group: general-server-without-chat
group_label: server (8/10)
shard_index: 7
shard_count: 10
- group: general-server-without-chat
group_label: server (9/10)
shard_index: 8
shard_count: 10
- group: general-server-without-chat
group_label: server (10/10)
shard_index: 9
shard_count: 10
- group: general-chat
group_label: chat (1/3)
shard_index: 0

View File

@ -32,6 +32,12 @@ runner capacity to avoid waiting behind an older release. No verification gate i
removed from npm publication. Watch organization-wide runner queues when measuring
the result.
Release verification spreads the general server suites across ten standard hosted
runners, with the long chat suite split separately across three jobs. Each server
job still runs one test worker. The partition covers every suite exactly once;
normal PR and local test groups keep their existing shape. More jobs increase
concurrent runner demand, so compare queue time as well as test duration.
The artifact wait runs for up to 30 minutes and reports what is missing. Only
an HTTP 404 means publication is pending; authorization errors, upstream outages,
and identity mismatches fail the job. A failed, cancelled, or skipped prerequisite

View File

@ -270,9 +270,9 @@ test("the real shard partition is duration-balanced", () => {
test("release server shards plus the dedicated chat file cover the original server group exactly", () => {
const full = dryRunJson(["--mode", "general", "--group", "general-server", "--shard-index", "0", "--shard-count", "1"]);
const shards = Array.from({ length: 5 }, (_, index) => dryRunJson([
const shards = Array.from({ length: 10 }, (_, index) => dryRunJson([
"--mode", "general", "--group", "general-server-without-chat",
"--shard-index", String(index), "--shard-count", "5",
"--shard-index", String(index), "--shard-count", "10",
]));
const files = shards.flatMap((shard) => shard.selectedGeneralServerSuites);
const chat = "server/src/__tests__/chat-channels.integration.test.ts";