@quenty/nevermore-cli 4.19.0 → 4.19.1-canary.664.c5fd0e8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/build-scripts/combine-test-places.luau +121 -0
  3. package/dist/commands/batch-command/batch-test-command.d.ts +3 -0
  4. package/dist/commands/batch-command/batch-test-command.d.ts.map +1 -1
  5. package/dist/commands/batch-command/batch-test-command.js +27 -5
  6. package/dist/commands/batch-command/batch-test-command.js.map +1 -1
  7. package/dist/utils/batch/batch-runner.js +1 -1
  8. package/dist/utils/batch/batch-runner.js.map +1 -1
  9. package/dist/utils/job-context/batch-script-job-context.d.ts +44 -0
  10. package/dist/utils/job-context/batch-script-job-context.d.ts.map +1 -0
  11. package/dist/utils/job-context/batch-script-job-context.js +196 -0
  12. package/dist/utils/job-context/batch-script-job-context.js.map +1 -0
  13. package/dist/utils/job-context/cloud-job-context.d.ts.map +1 -1
  14. package/dist/utils/job-context/cloud-job-context.js +5 -2
  15. package/dist/utils/job-context/cloud-job-context.js.map +1 -1
  16. package/dist/utils/job-context/index.d.ts +1 -0
  17. package/dist/utils/job-context/index.d.ts.map +1 -1
  18. package/dist/utils/job-context/index.js +1 -0
  19. package/dist/utils/job-context/index.js.map +1 -1
  20. package/dist/utils/testing/parsers/batch-log-parser.d.ts +21 -0
  21. package/dist/utils/testing/parsers/batch-log-parser.d.ts.map +1 -0
  22. package/dist/utils/testing/parsers/batch-log-parser.js +115 -0
  23. package/dist/utils/testing/parsers/batch-log-parser.js.map +1 -0
  24. package/dist/utils/testing/runner/combined-project-generator.d.ts +27 -0
  25. package/dist/utils/testing/runner/combined-project-generator.d.ts.map +1 -0
  26. package/dist/utils/testing/runner/combined-project-generator.js +99 -0
  27. package/dist/utils/testing/runner/combined-project-generator.js.map +1 -0
  28. package/package.json +2 -2
  29. package/src/commands/batch-command/batch-test-command.ts +37 -5
  30. package/src/utils/batch/batch-runner.ts +1 -1
  31. package/src/utils/job-context/batch-script-job-context.ts +299 -0
  32. package/src/utils/job-context/cloud-job-context.ts +7 -7
  33. package/src/utils/job-context/index.ts +1 -0
  34. package/src/utils/testing/parsers/batch-log-parser.ts +158 -0
  35. package/src/utils/testing/runner/combined-project-generator.ts +176 -0
  36. package/templates/batch-test-runner.luau +130 -0
  37. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,23 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.19.1-canary.664.c5fd0e8.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@4.19.0...@quenty/nevermore-cli@4.19.1-canary.664.c5fd0e8.0) (2026-02-19)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Fix test execution and parsing ([d744687](https://github.com/Quenty/Nevermore/commit/d744687e0ecf92dafc5b3315341d666ed378f535))
12
+ * Infinite concurrency is default ([83ae3f7](https://github.com/Quenty/Nevermore/commit/83ae3f7c4787f98f4b69cf2ccdcff5566c6e7339))
13
+
14
+
15
+ ### Features
16
+
17
+ * **cli:** add aggregated batch test execution ([f984a43](https://github.com/Quenty/Nevermore/commit/f984a43d3f51526ab96cb11107e761d73de05b63))
18
+
19
+
20
+
21
+
22
+
6
23
  # [4.19.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@4.18.0...@quenty/nevermore-cli@4.19.0) (2026-02-18)
7
24
 
8
25
 
@@ -0,0 +1,121 @@
1
+ -- combine-test-places.luau
2
+ -- Merges individually-built test .rbxl files into a single combined place.
3
+ --
4
+ -- Usage: lune run combine-test-places.luau <outputPath> <slug1> <rbxl1> <scriptPath1> [<slug2> <rbxl2> <scriptPath2> ...]
5
+ --
6
+ -- For each triple (slug, rbxl, scriptPath):
7
+ -- 1. Deserializes the .rbxl
8
+ -- 2. Reparents SSS children (the package root) into the combined SSS
9
+ -- 3. Reads the test script file and creates a Script under RS._BatchScripts
10
+
11
+ local fs = require("@lune/fs")
12
+ local process = require("@lune/process")
13
+ local roblox = require("@lune/roblox")
14
+
15
+ local outputPath = process.args[1]
16
+ if not outputPath then
17
+ print("Usage: lune run combine-test-places.luau <outputPath> <slug> <rbxl> <scriptPath> ...")
18
+ process.exit(1)
19
+ end
20
+
21
+ -- Parse remaining args as triples: slug, rbxlPath, scriptPath
22
+ local packages = {}
23
+ local i = 2
24
+ while i + 2 <= #process.args do
25
+ table.insert(packages, {
26
+ slug = process.args[i],
27
+ rbxlPath = process.args[i + 1],
28
+ scriptPath = process.args[i + 2],
29
+ })
30
+ i = i + 3
31
+ end
32
+
33
+ if #packages == 0 then
34
+ print("No packages specified")
35
+ process.exit(1)
36
+ end
37
+
38
+ -- Use the first package's place as the base (preserves DataModel properties)
39
+ local baseContents = fs.readFile(packages[1].rbxlPath)
40
+ local game = roblox.deserializePlace(baseContents)
41
+ local sss = game:GetService("ServerScriptService")
42
+
43
+ -- Enable LoadStringEnabled on SSS
44
+ sss:SetAttribute("LoadStringEnabled", true)
45
+
46
+ -- Create _BatchScripts folder in ReplicatedStorage
47
+ local rs = game:GetService("ReplicatedStorage")
48
+ local batchScriptsFolder = roblox.Instance.new("Folder")
49
+ batchScriptsFolder.Name = "_BatchScripts"
50
+ batchScriptsFolder.Parent = rs
51
+
52
+ -- Process the first package (already loaded as the base)
53
+ do
54
+ local pkg = packages[1]
55
+
56
+ -- SSS children are already in place from the base build.
57
+ -- Read the test script and add to _BatchScripts.
58
+ local scriptSource = fs.readFile(pkg.scriptPath)
59
+ local scriptInst = roblox.Instance.new("Script")
60
+ scriptInst.Name = pkg.slug
61
+ scriptInst:AddTag("_BatchTest_" .. pkg.slug)
62
+ local ok, err = pcall(function()
63
+ (scriptInst :: any).Source = scriptSource
64
+ end)
65
+ if not ok then
66
+ warn("[CombinePlaces] Cannot set Source on " .. pkg.slug .. ": " .. tostring(err))
67
+ scriptInst:SetAttribute("ScriptSource", scriptSource)
68
+ end
69
+ scriptInst.Parent = batchScriptsFolder
70
+ end
71
+
72
+ -- Process remaining packages: deserialize each and reparent SSS children.
73
+ -- NOTE: ObjectValues (links) within each package's subtree are preserved when the
74
+ -- whole subtree is reparented as a unit. This works because all ObjectValue targets
75
+ -- are siblings within the same tree. If this breaks in a future Lune version, the
76
+ -- fallback is to resolve ObjectValues after reparenting via Name/path lookups.
77
+ -- See docs/gotchas/tooling.md for details.
78
+ for idx = 2, #packages do
79
+ local pkg = packages[idx]
80
+
81
+ local contents = fs.readFile(pkg.rbxlPath)
82
+ local pkgGame = roblox.deserializePlace(contents)
83
+ local pkgSSS = pkgGame:GetService("ServerScriptService")
84
+
85
+ -- Reparent all SSS children (non-recursively, just move the roots)
86
+ for _, child in pkgSSS:GetChildren() do
87
+ -- Skip Script instances (these are test entry points, not package roots)
88
+ if child.ClassName == "Script" and child.Name == "Script" then
89
+ continue
90
+ end
91
+ child.Parent = sss
92
+ end
93
+
94
+ -- Read the test script and add to _BatchScripts
95
+ local scriptSource = fs.readFile(pkg.scriptPath)
96
+ local scriptInst = roblox.Instance.new("Script")
97
+ scriptInst.Name = pkg.slug
98
+ scriptInst:AddTag("_BatchTest_" .. pkg.slug)
99
+ local ok, err = pcall(function()
100
+ (scriptInst :: any).Source = scriptSource
101
+ end)
102
+ if not ok then
103
+ warn("[CombinePlaces] Cannot set Source on " .. pkg.slug .. ": " .. tostring(err))
104
+ scriptInst:SetAttribute("ScriptSource", scriptSource)
105
+ end
106
+ scriptInst.Parent = batchScriptsFolder
107
+ end
108
+
109
+ -- Also remove any Script instances from the base build's SSS
110
+ -- (the batch runner uses loadstring, not auto-executed scripts)
111
+ for _, child in sss:GetChildren() do
112
+ if child.ClassName == "Script" and child.Name == "Script" then
113
+ child.Parent = nil
114
+ end
115
+ end
116
+
117
+ -- Serialize and write
118
+ local output = roblox.serializePlace(game)
119
+ fs.writeFile(outputPath, output)
120
+
121
+ print("[CombinePlaces] Combined " .. #packages .. " packages into " .. outputPath)
@@ -9,6 +9,9 @@ interface BatchTestArgs extends NevermoreGlobalArgs {
9
9
  output?: string;
10
10
  limit?: number;
11
11
  logs?: boolean;
12
+ aggregated?: boolean;
13
+ batchPlaceId?: number;
14
+ batchUniverseId?: number;
12
15
  }
13
16
  export declare const batchTestCommand: CommandModule<NevermoreGlobalArgs, BatchTestArgs>;
14
17
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"batch-test-command.d.ts","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-test-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAkChE,UAAU,aAAc,SAAQ,mBAAmB;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAC1C,mBAAmB,EACnB,aAAa,CAmDd,CAAC"}
1
+ {"version":3,"file":"batch-test-command.d.ts","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-test-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAmChE,UAAU,aAAc,SAAQ,mBAAmB;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAC1C,mBAAmB,EACnB,aAAa,CAoEd,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { OutputHelper } from '@quenty/cli-output-helpers';
2
2
  import { getApiKeyAsync } from '../../utils/auth/credential-store.js';
3
3
  import { runBatchAsync } from '../../utils/batch/batch-runner.js';
4
- import { CloudJobContext, LocalJobContext, } from '../../utils/job-context/index.js';
4
+ import { BatchScriptJobContext, CloudJobContext, LocalJobContext, } from '../../utils/job-context/index.js';
5
5
  import { OpenCloudClient } from '../../utils/open-cloud/open-cloud-client.js';
6
6
  import { RateLimiter } from '../../utils/open-cloud/rate-limiter.js';
7
7
  import { discoverAllTestablePackagesAsync, discoverChangedTestablePackagesAsync, } from '../../utils/batch/changed-packages-utils.js';
@@ -33,7 +33,7 @@ export const batchTestCommand = {
33
33
  default: 'origin/main',
34
34
  })
35
35
  .option('concurrency', {
36
- describe: 'Max parallel tests (default: 1 local, 3 cloud)',
36
+ describe: 'Max parallel tests (0 = unlimited, default: unlimited)',
37
37
  type: 'number',
38
38
  })
39
39
  .option('output', {
@@ -48,6 +48,19 @@ export const batchTestCommand = {
48
48
  describe: 'Show execution logs for all packages (not just failures)',
49
49
  type: 'boolean',
50
50
  default: false,
51
+ })
52
+ .option('aggregated', {
53
+ describe: 'Build all packages into a single place and execute one batch script',
54
+ type: 'boolean',
55
+ default: true,
56
+ })
57
+ .option('batch-place-id', {
58
+ describe: 'Override placeId for the aggregated batch upload (--aggregated only)',
59
+ type: 'number',
60
+ })
61
+ .option('batch-universe-id', {
62
+ describe: 'Override universeId for the aggregated batch upload (--aggregated only)',
63
+ type: 'number',
51
64
  });
52
65
  },
53
66
  handler: async (args) => {
@@ -78,7 +91,9 @@ async function _runAsync(args) {
78
91
  return;
79
92
  }
80
93
  const cloud = args.cloud ?? false;
81
- const concurrency = args.concurrency ?? 3;
94
+ const concurrency = args.concurrency === undefined || args.concurrency === 0
95
+ ? Infinity
96
+ : args.concurrency;
82
97
  const isGrouped = !process.stdout.isTTY || args.verbose || isCI();
83
98
  const packageNames = packages.map((p) => p.name);
84
99
  const reporter = new CompositeReporter(packageNames, (state) => {
@@ -107,11 +122,18 @@ async function _runAsync(args) {
107
122
  const apiKey = await getApiKeyAsync(args);
108
123
  client = new OpenCloudClient({ apiKey, rateLimiter: new RateLimiter() });
109
124
  }
110
- const context = client
125
+ const timeoutMs = 120_000;
126
+ const innerContext = client
111
127
  ? new CloudJobContext(client)
112
128
  : new LocalJobContext();
129
+ const context = args.aggregated
130
+ ? new BatchScriptJobContext(innerContext, packages, {
131
+ batchPlaceId: args.batchPlaceId,
132
+ batchUniverseId: args.batchUniverseId,
133
+ perPackageTimeoutMs: timeoutMs,
134
+ })
135
+ : innerContext;
113
136
  await reporter.startAsync();
114
- const timeoutMs = 120_000;
115
137
  let results;
116
138
  try {
117
139
  results = await runBatchAsync({
@@ -1 +1 @@
1
- {"version":3,"file":"batch-test-command.js","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-test-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-test-command.js","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-test-command.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { OutputHelper } from '@quenty/cli-output-helpers';
2
2
  export async function runBatchAsync(options) {
3
- const { packages, concurrency = 3, reporter, bufferOutput = false, executeAsync, } = options;
3
+ const { packages, concurrency = Infinity, reporter, bufferOutput = false, executeAsync, } = options;
4
4
  const results = [];
5
5
  let runningCount = 0;
6
6
  let nextIndex = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"batch-runner.js","sourceRoot":"","sources":["../../../src/utils/batch/batch-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-runner.js","sourceRoot":"","sources":["../../../src/utils/batch/batch-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { type Reporter } from '@quenty/cli-output-helpers/reporting';
2
+ import { type BuiltPlace, type Deployment, type DeployPlaceOptions, type JobContext, type RunScriptOptions, type ScriptRunResult } from './job-context.js';
3
+ import { type BuildPlaceOptions } from '../build/build.js';
4
+ import { type TargetPackage } from '../batch/changed-packages-utils.js';
5
+ /**
6
+ * JobContext wrapper that batches all packages into a single build, upload, and
7
+ * execution. Wraps an inner context (cloud or local) and intercepts all methods
8
+ * using the lazy-promise pattern: the first concurrent call triggers the shared
9
+ * operation, all others await the same promise.
10
+ */
11
+ export declare class BatchScriptJobContext implements JobContext {
12
+ private _inner;
13
+ private _packages;
14
+ private _repoRoot;
15
+ private _batchPlaceId?;
16
+ private _batchUniverseId?;
17
+ private _perPackageTimeoutMs;
18
+ private _combinedBuildPromise?;
19
+ private _deployPromise?;
20
+ private _executionPromise?;
21
+ private _packageTargets;
22
+ private _combinedBuildContext?;
23
+ private _sharedDeployment?;
24
+ constructor(inner: JobContext, packages: TargetPackage[], options?: {
25
+ repoRoot?: string;
26
+ batchPlaceId?: number;
27
+ batchUniverseId?: number;
28
+ perPackageTimeoutMs?: number;
29
+ });
30
+ buildPlaceAsync(options: BuildPlaceOptions): Promise<BuiltPlace>;
31
+ deployBuiltPlaceAsync(reporter: Reporter, options: DeployPlaceOptions): Promise<Deployment>;
32
+ runScriptAsync(deployment: Deployment, _reporter: Reporter, options: RunScriptOptions): Promise<ScriptRunResult>;
33
+ getLogsAsync(deployment: Deployment): Promise<string>;
34
+ releaseAsync(_deployment: Deployment): Promise<void>;
35
+ releaseBuiltPlaceAsync(_builtPlace: BuiltPlace): Promise<void>;
36
+ disposeAsync(): Promise<void>;
37
+ private _getCombinedBuildAsync;
38
+ private _doCombinedBuildAsync;
39
+ private _getSharedDeploymentAsync;
40
+ private _doSharedDeployAsync;
41
+ private _getBatchExecutionAsync;
42
+ private _doBatchExecutionAsync;
43
+ }
44
+ //# sourceMappingURL=batch-script-job-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-script-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/batch-script-job-context.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAuBxE;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,oBAAoB,CAAS;IAGrC,OAAO,CAAC,qBAAqB,CAAC,CAA8B;IAC5D,OAAO,CAAC,cAAc,CAAC,CAAsB;IAC7C,OAAO,CAAC,iBAAiB,CAAC,CAA2C;IACrE,OAAO,CAAC,eAAe,CAAmC;IAG1D,OAAO,CAAC,qBAAqB,CAAC,CAAe;IAC7C,OAAO,CAAC,iBAAiB,CAAC,CAAa;gBAGrC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B;IAUG,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsBhE,qBAAqB,CACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAMhB,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IAYrB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQrD,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,sBAAsB,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBnC,OAAO,CAAC,sBAAsB;YAOhB,qBAAqB;IAenC,OAAO,CAAC,yBAAyB;YAOnB,oBAAoB;IAsBlC,OAAO,CAAC,uBAAuB;YAWjB,sBAAsB;CAmDrC"}
@@ -0,0 +1,196 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { resolveTemplatePath, } from '@quenty/nevermore-template-helpers';
4
+ import { OutputHelper } from '@quenty/cli-output-helpers';
5
+ import { loadDeployConfigAsync, resolveDeployConfigPath, resolveDeployTarget, } from '../build/deploy-config.js';
6
+ import { generateCombinedProjectAsync, } from '../testing/runner/combined-project-generator.js';
7
+ import { parseBatchTestLogs, } from '../testing/parsers/batch-log-parser.js';
8
+ /** Per-package deployment handle. Wraps a shared inner deployment. */
9
+ class BatchDeployment {
10
+ packageName;
11
+ inner;
12
+ constructor(packageName, inner) {
13
+ this.packageName = packageName;
14
+ this.inner = inner;
15
+ }
16
+ }
17
+ /**
18
+ * JobContext wrapper that batches all packages into a single build, upload, and
19
+ * execution. Wraps an inner context (cloud or local) and intercepts all methods
20
+ * using the lazy-promise pattern: the first concurrent call triggers the shared
21
+ * operation, all others await the same promise.
22
+ */
23
+ export class BatchScriptJobContext {
24
+ _inner;
25
+ _packages;
26
+ _repoRoot;
27
+ _batchPlaceId;
28
+ _batchUniverseId;
29
+ _perPackageTimeoutMs;
30
+ // Lazy-promise state
31
+ _combinedBuildPromise;
32
+ _deployPromise;
33
+ _executionPromise;
34
+ _packageTargets = new Map();
35
+ // State for cleanup
36
+ _combinedBuildContext;
37
+ _sharedDeployment;
38
+ constructor(inner, packages, options) {
39
+ this._inner = inner;
40
+ this._packages = packages;
41
+ this._repoRoot = options?.repoRoot ?? process.cwd();
42
+ this._batchPlaceId = options?.batchPlaceId;
43
+ this._batchUniverseId = options?.batchUniverseId;
44
+ this._perPackageTimeoutMs = options?.perPackageTimeoutMs ?? 120_000;
45
+ }
46
+ async buildPlaceAsync(options) {
47
+ const buildState = await this._getCombinedBuildAsync();
48
+ const packageName = options.packageName ?? path.basename(options.packagePath ?? '');
49
+ // Load per-package target for the BuiltPlace.target field
50
+ // (runSingleTestAsync reads scriptTemplate from it, but we ignore the script content)
51
+ let target = this._packageTargets.get(packageName);
52
+ if (!target) {
53
+ const packagePath = options.packagePath ?? process.cwd();
54
+ const configPath = resolveDeployConfigPath(packagePath);
55
+ const config = await loadDeployConfigAsync(configPath);
56
+ target = resolveDeployTarget(config, options.targetName);
57
+ this._packageTargets.set(packageName, target);
58
+ }
59
+ return {
60
+ rbxlPath: buildState.rbxlPath,
61
+ target,
62
+ };
63
+ }
64
+ async deployBuiltPlaceAsync(reporter, options) {
65
+ const innerDeployment = await this._getSharedDeploymentAsync(reporter);
66
+ return new BatchDeployment(options.packageName, innerDeployment);
67
+ }
68
+ async runScriptAsync(deployment, _reporter, options) {
69
+ const batchDeployment = deployment;
70
+ const packageResults = await this._getBatchExecutionAsync();
71
+ const result = packageResults.get(batchDeployment.packageName);
72
+ if (!result) {
73
+ return { success: false };
74
+ }
75
+ return { success: result.success };
76
+ }
77
+ async getLogsAsync(deployment) {
78
+ const batchDeployment = deployment;
79
+ const packageResults = await this._getBatchExecutionAsync();
80
+ const result = packageResults.get(batchDeployment.packageName);
81
+ return result?.logs ?? '';
82
+ }
83
+ async releaseAsync(_deployment) {
84
+ // No-op — shared deployment released in disposeAsync
85
+ }
86
+ async releaseBuiltPlaceAsync(_builtPlace) {
87
+ // No-op — combined build cleaned up in disposeAsync
88
+ }
89
+ async disposeAsync() {
90
+ // Release shared inner deployment
91
+ if (this._sharedDeployment) {
92
+ try {
93
+ await this._inner.releaseAsync(this._sharedDeployment);
94
+ }
95
+ catch {
96
+ // best effort
97
+ }
98
+ }
99
+ // Clean up combined build context
100
+ if (this._combinedBuildContext) {
101
+ try {
102
+ await this._combinedBuildContext.cleanupAsync();
103
+ }
104
+ catch {
105
+ // best effort
106
+ }
107
+ }
108
+ await this._inner.disposeAsync();
109
+ }
110
+ // ---- Lazy-promise internals ----
111
+ _getCombinedBuildAsync() {
112
+ if (!this._combinedBuildPromise) {
113
+ this._combinedBuildPromise = this._doCombinedBuildAsync();
114
+ }
115
+ return this._combinedBuildPromise;
116
+ }
117
+ async _doCombinedBuildAsync() {
118
+ OutputHelper.verbose('Building combined batch place...');
119
+ const combinedResult = await generateCombinedProjectAsync({
120
+ packages: this._packages,
121
+ repoRoot: this._repoRoot,
122
+ batchPlaceId: this._batchPlaceId,
123
+ batchUniverseId: this._batchUniverseId,
124
+ });
125
+ this._combinedBuildContext = combinedResult.buildContext;
126
+ return { combinedResult, rbxlPath: combinedResult.rbxlPath };
127
+ }
128
+ _getSharedDeploymentAsync(reporter) {
129
+ if (!this._deployPromise) {
130
+ this._deployPromise = this._doSharedDeployAsync(reporter);
131
+ }
132
+ return this._deployPromise;
133
+ }
134
+ async _doSharedDeployAsync(reporter) {
135
+ const buildState = await this._getCombinedBuildAsync();
136
+ const { primaryTarget } = buildState.combinedResult;
137
+ // Create a minimal reporter that doesn't emit per-package phases
138
+ const batchReporter = reporter ?? _noopReporter();
139
+ const builtPlace = {
140
+ rbxlPath: buildState.rbxlPath,
141
+ target: primaryTarget,
142
+ };
143
+ const deployment = await this._inner.deployBuiltPlaceAsync(batchReporter, {
144
+ builtPlace,
145
+ packageName: '_batch_',
146
+ packagePath: this._repoRoot,
147
+ });
148
+ this._sharedDeployment = deployment;
149
+ return deployment;
150
+ }
151
+ _getBatchExecutionAsync() {
152
+ if (!this._executionPromise) {
153
+ this._executionPromise = this._doBatchExecutionAsync();
154
+ // On rejection, clear the promise so that a retry re-triggers the batch
155
+ this._executionPromise.catch(() => {
156
+ this._executionPromise = undefined;
157
+ });
158
+ }
159
+ return this._executionPromise;
160
+ }
161
+ async _doBatchExecutionAsync() {
162
+ const buildState = await this._getCombinedBuildAsync();
163
+ const deployment = await this._getSharedDeploymentAsync();
164
+ const { slugMap } = buildState.combinedResult;
165
+ // Build the batch Luau script from the template
166
+ const templatePath = resolveTemplatePath(import.meta.url, 'batch-test-runner.luau');
167
+ const template = await fs.readFile(templatePath, 'utf-8');
168
+ const slugArray = [...slugMap.values()];
169
+ const batchScript = template.replaceAll('{{ PACKAGE_SLUGS_JSON }}', JSON.stringify(slugArray));
170
+ const totalTimeoutMs = this._packages.length * this._perPackageTimeoutMs;
171
+ OutputHelper.verbose(`Executing batch script for ${slugMap.size} packages (timeout: ${totalTimeoutMs / 1000}s)...`);
172
+ const result = await this._inner.runScriptAsync(deployment, _noopReporter(), {
173
+ scriptContent: batchScript,
174
+ packageName: '_batch_',
175
+ timeoutMs: totalTimeoutMs,
176
+ });
177
+ // Fetch the combined logs
178
+ const rawLogs = await this._inner.getLogsAsync(deployment);
179
+ if (!result.success) {
180
+ OutputHelper.warn('Batch execution task did not complete successfully — parsing partial results');
181
+ OutputHelper.verbose(`Raw batch logs:\n${rawLogs || '(empty)'}`);
182
+ }
183
+ // Parse into per-package results
184
+ return parseBatchTestLogs(rawLogs, slugMap);
185
+ }
186
+ }
187
+ function _noopReporter() {
188
+ return {
189
+ onPackageStart: () => { },
190
+ onPackagePhaseChange: () => { },
191
+ onPackageResult: () => { },
192
+ startAsync: async () => { },
193
+ stopAsync: async () => { },
194
+ };
195
+ }
196
+ //# sourceMappingURL=batch-script-job-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-script-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/batch-script-job-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAEL,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAgBvD,qBAAa,eAAgB,SAAQ,cAAc;IACjD,OAAO,CAAC,gBAAgB,CAAkB;gBAE9B,eAAe,EAAE,eAAe;IAKtC,qBAAqB,CACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAyBhB,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IA2BrB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBrD,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
1
+ {"version":3,"file":"cloud-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAEL,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkBvD,qBAAa,eAAgB,SAAQ,cAAc;IACjD,OAAO,CAAC,gBAAgB,CAAkB;gBAE9B,eAAe,EAAE,eAAe;IAKtC,qBAAqB,CACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAuBhB,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IA2BrB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBrD,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
@@ -1,6 +1,7 @@
1
1
  import { tryRenamePlaceAsync } from '../auth/roblox-auth/index.js';
2
2
  import { buildPlaceNameAsync, timeoutAsync } from '../nevermore-cli-utils.js';
3
3
  import { BaseJobContext } from './base-job-context.js';
4
+ const SKIP_RENAMING_PLACE = true;
4
5
  class CloudDeployment {
5
6
  universeId;
6
7
  placeId;
@@ -27,8 +28,10 @@ export class CloudJobContext extends BaseJobContext {
27
28
  // Eagerly release build artifacts after upload (disposeAsync is safety net)
28
29
  await this.releaseBuiltPlaceAsync(builtPlace);
29
30
  // Best-effort rename to reflect current package + commit
30
- const placeName = await buildPlaceNameAsync(packagePath);
31
- await tryRenamePlaceAsync(target.placeId, placeName);
31
+ if (!SKIP_RENAMING_PLACE) {
32
+ const placeName = await buildPlaceNameAsync(packagePath);
33
+ await tryRenamePlaceAsync(target.placeId, placeName);
34
+ }
32
35
  return new CloudDeployment(target.universeId, target.placeId, version);
33
36
  }
34
37
  async runScriptAsync(deployment, reporter, options) {
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export type { BuiltPlace, Deployment, JobContext, DeployPlaceOptions, RunScriptOptions, ScriptRunResult, } from './job-context.js';
2
2
  export { BaseJobContext } from './base-job-context.js';
3
+ export { BatchScriptJobContext } from './batch-script-job-context.js';
3
4
  export { CloudJobContext } from './cloud-job-context.js';
4
5
  export { LocalJobContext } from './local-job-context.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { BaseJobContext } from './base-job-context.js';
2
+ export { BatchScriptJobContext } from './batch-script-job-context.js';
2
3
  export { CloudJobContext } from './cloud-job-context.js';
3
4
  export { LocalJobContext } from './local-job-context.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/job-context/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/job-context/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface BatchPackageResult {
2
+ slug: string;
3
+ success: boolean;
4
+ logs: string;
5
+ }
6
+ /**
7
+ * Parse the single batch execution's logs into per-package results.
8
+ *
9
+ * The batch Luau template prints structured markers around each package's output:
10
+ * ===BATCH_TEST_BEGIN <slug>===
11
+ * ... test output ...
12
+ * ===BATCH_TEST_END <slug> PASS|FAIL===
13
+ * ===BATCH_TEST_SUMMARY===
14
+ * [{"slug":"maid","success":true}, ...]
15
+ *
16
+ * Success is determined from the JSON summary (based on pcall results), which is
17
+ * immune to log reordering. The BEGIN/END markers are used only for splitting logs
18
+ * into per-package sections. Jest failure detection provides a secondary override.
19
+ */
20
+ export declare function parseBatchTestLogs(rawLogs: string, slugMap: Map<string, string>): Map<string, BatchPackageResult>;
21
+ //# sourceMappingURL=batch-log-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-log-parser.d.ts","sourceRoot":"","sources":["../../../../src/utils/testing/parsers/batch-log-parser.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAYD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA2GjC"}