@quenty/nevermore-cli 4.43.3 → 4.44.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.
- package/CHANGELOG.md +10 -0
- package/build-scripts/{combine-test-places.luau → combine-test-places.lua} +3 -3
- package/build-scripts/{transform-inject-deploy-metadata.luau → transform-inject-deploy-metadata.lua} +3 -3
- package/dist/commands/batch-command/batch-deploy-command.js +4 -4
- package/dist/commands/batch-command/batch-deploy-command.js.map +1 -1
- package/dist/commands/batch-command/batch-test-command.d.ts.map +1 -1
- package/dist/commands/batch-command/batch-test-command.js +76 -19
- package/dist/commands/batch-command/batch-test-command.js.map +1 -1
- package/dist/commands/deploy-command/deploy-init-utils.d.ts.map +1 -1
- package/dist/commands/deploy-command/deploy-init-utils.js +7 -1
- package/dist/commands/deploy-command/deploy-init-utils.js.map +1 -1
- package/dist/commands/deploy-command/index.js +1 -1
- package/dist/commands/deploy-command/index.js.map +1 -1
- package/dist/commands/init-command/init-game-command.js +2 -2
- package/dist/commands/init-command/init-game-command.js.map +1 -1
- package/dist/commands/install-package-command.d.ts +14 -0
- package/dist/commands/install-package-command.d.ts.map +1 -1
- package/dist/commands/install-package-command.js +65 -12
- package/dist/commands/install-package-command.js.map +1 -1
- package/dist/utils/deploy/deploy-github-columns.d.ts +12 -2
- package/dist/utils/deploy/deploy-github-columns.d.ts.map +1 -1
- package/dist/utils/deploy/deploy-github-columns.js +11 -4
- package/dist/utils/deploy/deploy-github-columns.js.map +1 -1
- package/dist/utils/deploy/deploy-metadata.js +1 -1
- package/dist/utils/deploy/deploy-metadata.js.map +1 -1
- package/dist/utils/job-context/base-job-context.d.ts +2 -2
- package/dist/utils/job-context/base-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/base-job-context.js +1 -1
- package/dist/utils/job-context/base-job-context.js.map +1 -1
- package/dist/utils/job-context/batch-script-job-context.d.ts +37 -2
- package/dist/utils/job-context/batch-script-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/batch-script-job-context.js +59 -22
- package/dist/utils/job-context/batch-script-job-context.js.map +1 -1
- package/dist/utils/job-context/cloud-job-context.d.ts +2 -2
- package/dist/utils/job-context/cloud-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/cloud-job-context.js +10 -5
- package/dist/utils/job-context/cloud-job-context.js.map +1 -1
- package/dist/utils/job-context/cloud-job-context.test.d.ts +7 -0
- package/dist/utils/job-context/cloud-job-context.test.d.ts.map +1 -0
- package/dist/utils/job-context/cloud-job-context.test.js +91 -0
- package/dist/utils/job-context/cloud-job-context.test.js.map +1 -0
- package/dist/utils/job-context/job-context.d.ts +70 -2
- package/dist/utils/job-context/job-context.d.ts.map +1 -1
- package/dist/utils/job-context/local-job-context.d.ts +2 -2
- package/dist/utils/job-context/local-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/local-job-context.js +4 -2
- package/dist/utils/job-context/local-job-context.js.map +1 -1
- package/dist/utils/job-context/local-job-context.test.d.ts +7 -0
- package/dist/utils/job-context/local-job-context.test.d.ts.map +1 -0
- package/dist/utils/job-context/local-job-context.test.js +68 -0
- package/dist/utils/job-context/local-job-context.test.js.map +1 -0
- package/dist/utils/open-cloud/open-cloud-client.d.ts +50 -7
- package/dist/utils/open-cloud/open-cloud-client.d.ts.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.js +49 -13
- package/dist/utils/open-cloud/open-cloud-client.js.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.test.js +125 -1
- package/dist/utils/open-cloud/open-cloud-client.test.js.map +1 -1
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.d.ts +22 -0
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.d.ts.map +1 -0
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.js +202 -0
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.js.map +1 -0
- package/dist/utils/package-manager-utils.d.ts +29 -0
- package/dist/utils/package-manager-utils.d.ts.map +1 -0
- package/dist/utils/package-manager-utils.js +120 -0
- package/dist/utils/package-manager-utils.js.map +1 -0
- package/dist/utils/package-manager-utils.test.d.ts +2 -0
- package/dist/utils/package-manager-utils.test.d.ts.map +1 -0
- package/dist/utils/package-manager-utils.test.js +121 -0
- package/dist/utils/package-manager-utils.test.js.map +1 -0
- package/dist/utils/testing/batch-run.e2e.test.d.ts +17 -0
- package/dist/utils/testing/batch-run.e2e.test.d.ts.map +1 -0
- package/dist/utils/testing/batch-run.e2e.test.js +343 -0
- package/dist/utils/testing/batch-run.e2e.test.js.map +1 -0
- package/dist/utils/testing/batch-test-runner-template.test.d.ts +11 -0
- package/dist/utils/testing/batch-test-runner-template.test.d.ts.map +1 -0
- package/dist/utils/testing/batch-test-runner-template.test.js +38 -0
- package/dist/utils/testing/batch-test-runner-template.test.js.map +1 -0
- package/dist/utils/testing/log-fetch-stats.d.ts +40 -0
- package/dist/utils/testing/log-fetch-stats.d.ts.map +1 -0
- package/dist/utils/testing/log-fetch-stats.js +18 -0
- package/dist/utils/testing/log-fetch-stats.js.map +1 -0
- package/dist/utils/testing/log-fetch-stats.test.d.ts +2 -0
- package/dist/utils/testing/log-fetch-stats.test.d.ts.map +1 -0
- package/dist/utils/testing/log-fetch-stats.test.js +41 -0
- package/dist/utils/testing/log-fetch-stats.test.js.map +1 -0
- package/dist/utils/testing/parsers/batch-log-parser.d.ts +126 -1
- package/dist/utils/testing/parsers/batch-log-parser.d.ts.map +1 -1
- package/dist/utils/testing/parsers/batch-log-parser.js +440 -103
- package/dist/utils/testing/parsers/batch-log-parser.js.map +1 -1
- package/dist/utils/testing/parsers/batch-log-parser.test.js +494 -1
- package/dist/utils/testing/parsers/batch-log-parser.test.js.map +1 -1
- package/dist/utils/testing/parsers/batch-log-renderer.d.ts +79 -0
- package/dist/utils/testing/parsers/batch-log-renderer.d.ts.map +1 -0
- package/dist/utils/testing/parsers/batch-log-renderer.js +241 -0
- package/dist/utils/testing/parsers/batch-log-renderer.js.map +1 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.d.ts +2 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.d.ts.map +1 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.js +202 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.js.map +1 -0
- package/dist/utils/testing/runner/combined-project-generator.js +1 -1
- package/dist/utils/testing/runner/combined-project-generator.js.map +1 -1
- package/dist/utils/testing/runner/test-runner.d.ts +24 -0
- package/dist/utils/testing/runner/test-runner.d.ts.map +1 -1
- package/dist/utils/testing/runner/test-runner.js +166 -6
- package/dist/utils/testing/runner/test-runner.js.map +1 -1
- package/dist/utils/testing/runner/test-runner.test.js +228 -2
- package/dist/utils/testing/runner/test-runner.test.js.map +1 -1
- package/dist/utils/testing/structured-test-results.d.ts +77 -0
- package/dist/utils/testing/structured-test-results.d.ts.map +1 -0
- package/dist/utils/testing/structured-test-results.js +140 -0
- package/dist/utils/testing/structured-test-results.js.map +1 -0
- package/dist/utils/testing/structured-test-results.test.d.ts +7 -0
- package/dist/utils/testing/structured-test-results.test.d.ts.map +1 -0
- package/dist/utils/testing/structured-test-results.test.js +179 -0
- package/dist/utils/testing/structured-test-results.test.js.map +1 -0
- package/package.json +6 -6
- package/src/commands/batch-command/batch-deploy-command.ts +4 -4
- package/src/commands/batch-command/batch-test-command.ts +94 -19
- package/src/commands/deploy-command/deploy-init-utils.ts +7 -1
- package/src/commands/deploy-command/index.ts +1 -1
- package/src/commands/init-command/init-game-command.ts +2 -2
- package/src/commands/install-package-command.ts +107 -14
- package/src/utils/deploy/deploy-github-columns.ts +14 -4
- package/src/utils/deploy/deploy-metadata.ts +1 -1
- package/src/utils/job-context/base-job-context.ts +3 -2
- package/src/utils/job-context/batch-script-job-context.ts +98 -17
- package/src/utils/job-context/cloud-job-context.test.ts +112 -0
- package/src/utils/job-context/cloud-job-context.ts +12 -6
- package/src/utils/job-context/job-context.ts +71 -2
- package/src/utils/job-context/local-job-context.test.ts +89 -0
- package/src/utils/job-context/local-job-context.ts +7 -3
- package/src/utils/open-cloud/open-cloud-client.test.ts +155 -1
- package/src/utils/open-cloud/open-cloud-client.ts +94 -18
- package/src/utils/open-cloud/open-cloud-logs.characterization.test.ts +277 -0
- package/src/utils/package-manager-utils.test.ts +174 -0
- package/src/utils/package-manager-utils.ts +148 -0
- package/src/utils/testing/batch-run.e2e.test.ts +425 -0
- package/src/utils/testing/batch-test-runner-template.test.ts +62 -0
- package/src/utils/testing/log-fetch-stats.test.ts +48 -0
- package/src/utils/testing/log-fetch-stats.ts +55 -0
- package/src/utils/testing/parsers/batch-log-parser.test.ts +660 -1
- package/src/utils/testing/parsers/batch-log-parser.ts +721 -116
- package/src/utils/testing/parsers/batch-log-renderer.test.ts +330 -0
- package/src/utils/testing/parsers/batch-log-renderer.ts +329 -0
- package/src/utils/testing/runner/combined-project-generator.ts +1 -1
- package/src/utils/testing/runner/test-runner.test.ts +332 -2
- package/src/utils/testing/runner/test-runner.ts +231 -9
- package/src/utils/testing/structured-test-results.test.ts +267 -0
- package/src/utils/testing/structured-test-results.ts +199 -0
- package/templates/batch-test-runner.lua +242 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/templates/batch-test-runner.luau +0 -137
- /package/build-scripts/{smoke-test-server.luau → smoke-test-server.lua} +0 -0
- /package/build-scripts/{transform-rojo-merge-place.luau → transform-rojo-merge-place.lua} +0 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { OutputHelper } from '@quenty/cli-output-helpers';
|
|
5
5
|
import { runCommandAsync } from '../utils/nevermore-cli-utils.js';
|
|
6
|
+
import { buildAddPackagesCommand, detectPackageManagerAsync, isPackageManager, PACKAGE_MANAGERS, } from '../utils/package-manager-utils.js';
|
|
6
7
|
/**
|
|
7
8
|
* Install a Nevermore package from npm
|
|
8
9
|
*/
|
|
@@ -15,19 +16,54 @@ export class InstallPackageCommand {
|
|
|
15
16
|
throw new Error('Package name is required!');
|
|
16
17
|
}
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Lists the published `@quenty/*` package names, without the scope.
|
|
21
|
+
*
|
|
22
|
+
* The registry caps search results at 250 per request, well under the number
|
|
23
|
+
* of published packages, so this pages through until the reported total is
|
|
24
|
+
* covered.
|
|
25
|
+
*/
|
|
18
26
|
static async _getPackages() {
|
|
27
|
+
const pageSize = 250;
|
|
28
|
+
const names = new Set();
|
|
19
29
|
try {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
|
|
30
|
+
let from = 0;
|
|
31
|
+
for (;;) {
|
|
32
|
+
const response = await fetch(`https://registry.npmjs.org/-/v1/search?text=@quenty/&size=${pageSize}&from=${from}`);
|
|
33
|
+
const data = await response.json();
|
|
34
|
+
const objects = data.objects ?? [];
|
|
35
|
+
for (const entry of objects) {
|
|
36
|
+
const name = entry.package?.name ?? '';
|
|
37
|
+
if (name.startsWith('@quenty/')) {
|
|
38
|
+
names.add(name.slice('@quenty/'.length));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
from += objects.length;
|
|
42
|
+
if (objects.length < pageSize || from >= (data.total ?? 0)) {
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
27
46
|
}
|
|
28
47
|
catch {
|
|
29
48
|
return [];
|
|
30
49
|
}
|
|
50
|
+
return [...names].sort();
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Asks the registry about one package directly. Returns undefined when the
|
|
54
|
+
* registry can't be reached, so an offline run doesn't look like a typo.
|
|
55
|
+
*/
|
|
56
|
+
static async _packageExistsAsync(scopedName) {
|
|
57
|
+
try {
|
|
58
|
+
const response = await fetch(`https://registry.npmjs.org/${scopedName.replace('/', '%2f')}`, { method: 'HEAD' });
|
|
59
|
+
if (response.status === 404) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return response.ok ? true : undefined;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return undefined;
|
|
66
|
+
}
|
|
31
67
|
}
|
|
32
68
|
builder(args) {
|
|
33
69
|
args.positional('packages', {
|
|
@@ -39,22 +75,39 @@ export class InstallPackageCommand {
|
|
|
39
75
|
return packages.filter((name) => !current || name.startsWith(current));
|
|
40
76
|
},
|
|
41
77
|
});
|
|
78
|
+
args.option('package-manager', {
|
|
79
|
+
describe: 'Package manager to install with. Detected from the project by default.',
|
|
80
|
+
type: 'string',
|
|
81
|
+
choices: PACKAGE_MANAGERS,
|
|
82
|
+
});
|
|
42
83
|
return args;
|
|
43
84
|
}
|
|
85
|
+
static async _resolvePackageManagerAsync(args, srcRoot) {
|
|
86
|
+
const requested = args.packageManager;
|
|
87
|
+
if (requested) {
|
|
88
|
+
if (!isPackageManager(requested)) {
|
|
89
|
+
throw new Error(`Unsupported package manager '${requested}'. Expected one of: ${PACKAGE_MANAGERS.join(', ')}`);
|
|
90
|
+
}
|
|
91
|
+
return requested;
|
|
92
|
+
}
|
|
93
|
+
return detectPackageManagerAsync(srcRoot);
|
|
94
|
+
}
|
|
44
95
|
async handler(args) {
|
|
45
96
|
const srcRoot = process.cwd();
|
|
46
97
|
if (!args.packages?.length) {
|
|
47
98
|
throw new Error('No packages specified!');
|
|
48
99
|
}
|
|
49
100
|
args.packages.forEach((packageName) => InstallPackageCommand._validatePackageName(packageName));
|
|
50
|
-
const
|
|
51
|
-
const
|
|
101
|
+
const prefixedPackages = args.packages.map((packageName) => `@quenty/${packageName}`);
|
|
102
|
+
const existence = await Promise.all(prefixedPackages.map((scopedName) => InstallPackageCommand._packageExistsAsync(scopedName)));
|
|
103
|
+
const invalidPackages = args.packages.filter((_, index) => existence[index] === false);
|
|
52
104
|
if (invalidPackages.length > 0) {
|
|
53
105
|
throw new Error(`Invalid packages: ${invalidPackages.join(', ')}`);
|
|
54
106
|
}
|
|
55
|
-
const
|
|
56
|
-
OutputHelper.info(`Installing packages: ${args.packages.join(', ')}`);
|
|
57
|
-
|
|
107
|
+
const packageManager = await InstallPackageCommand._resolvePackageManagerAsync(args, srcRoot);
|
|
108
|
+
OutputHelper.info(`Installing packages with ${packageManager}: ${args.packages.join(', ')}`);
|
|
109
|
+
const { command, args: commandArgs } = buildAddPackagesCommand(packageManager, prefixedPackages);
|
|
110
|
+
await runCommandAsync(args, command, commandArgs, {
|
|
58
111
|
cwd: srcRoot,
|
|
59
112
|
});
|
|
60
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-package-command.js","sourceRoot":"","sources":["../../src/commands/install-package-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"install-package-command.js","sourceRoot":"","sources":["../../src/commands/install-package-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,16 @@ import { type GithubCommentTableConfig, type PackageResult } from '@quenty/cli-o
|
|
|
3
3
|
export interface BatchDeployResult extends PackageResult {
|
|
4
4
|
placeId: number;
|
|
5
5
|
}
|
|
6
|
-
/**
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Shared config for the deploy results GitHub comment reporter.
|
|
8
|
+
*
|
|
9
|
+
* Takes the labels rather than fixing them, because a publish and a deploy are
|
|
10
|
+
* different words and the command already knows which it is doing. Without
|
|
11
|
+
* this the comment said "Failed" for a run whose terminal output said "DEPLOY
|
|
12
|
+
* FAILED" — the same run, described two ways.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createDeployCommentConfig(labels?: {
|
|
15
|
+
successLabel?: string;
|
|
16
|
+
failureLabel?: string;
|
|
17
|
+
}): GithubCommentTableConfig;
|
|
8
18
|
//# sourceMappingURL=deploy-github-columns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-github-columns.d.ts","sourceRoot":"","sources":["../../../src/utils/deploy/deploy-github-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAGnB,MAAM,sCAAsC,CAAC;AAE9C,kFAAkF;AAClF,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"deploy-github-columns.d.ts","sourceRoot":"","sources":["../../../src/utils/deploy/deploy-github-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAGnB,MAAM,sCAAsC,CAAC;AAE9C,kFAAkF;AAClF,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,CAAC,EAAE;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,wBAAwB,CAW3B"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { summarizeError, } from '@quenty/cli-output-helpers/reporting';
|
|
2
|
-
/**
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Shared config for the deploy results GitHub comment reporter.
|
|
4
|
+
*
|
|
5
|
+
* Takes the labels rather than fixing them, because a publish and a deploy are
|
|
6
|
+
* different words and the command already knows which it is doing. Without
|
|
7
|
+
* this the comment said "Failed" for a run whose terminal output said "DEPLOY
|
|
8
|
+
* FAILED" — the same run, described two ways.
|
|
9
|
+
*/
|
|
10
|
+
export function createDeployCommentConfig(labels) {
|
|
4
11
|
return {
|
|
5
12
|
heading: 'Deploy Results',
|
|
6
13
|
commentMarker: '<!-- nevermore-deploy-results -->',
|
|
7
14
|
sectionId: 'deploy',
|
|
8
15
|
extraColumns: [createErrorColumn(), createTryItColumn()],
|
|
9
16
|
errorHeading: 'Deploy Results',
|
|
10
|
-
successLabel: 'Deployed',
|
|
11
|
-
failureLabel: '
|
|
17
|
+
successLabel: labels?.successLabel ?? 'Deployed',
|
|
18
|
+
failureLabel: labels?.failureLabel ?? 'DEPLOY FAILED',
|
|
12
19
|
summaryVerb: 'deployed',
|
|
13
20
|
};
|
|
14
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-github-columns.js","sourceRoot":"","sources":["../../../src/utils/deploy/deploy-github-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,GACf,MAAM,sCAAsC,CAAC;AAO9C
|
|
1
|
+
{"version":3,"file":"deploy-github-columns.js","sourceRoot":"","sources":["../../../src/utils/deploy/deploy-github-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,GACf,MAAM,sCAAsC,CAAC;AAO9C;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAGzC;IACC,OAAO;QACL,OAAO,EAAE,gBAAgB;QACzB,aAAa,EAAE,mCAAmC;QAClD,SAAS,EAAE,QAAQ;QACnB,YAAY,EAAE,CAAC,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,CAAC;QACxD,YAAY,EAAE,gBAAgB;QAC9B,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,UAAU;QAChD,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,eAAe;QACrD,WAAW,EAAE,UAAU;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;QACL,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,MAAM;QAClB,MAAM,CAAC,GAAiB;YACtB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,eAAe,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,MAAM,CAAC,GAAiB;YACtB,MAAM,OAAO,GACV,GAAG,CAAC,MAAwC,EAAE,OAAO,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,OAAO,GAAG,gCAAgC,OAAO,EAAE,CAAC;YAC1D,MAAM,OAAO,GAAG,8CAA8C,OAAO,EAAE,CAAC;YACxE,OAAO,UAAU,OAAO,gBAAgB,OAAO,GAAG,CAAC;QACrD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { BuildContext, resolvePackagePath, } from '@quenty/nevermore-template-he
|
|
|
5
5
|
import { OutputHelper } from '@quenty/cli-output-helpers';
|
|
6
6
|
/** npm name of the package that ships the manifest module. */
|
|
7
7
|
export const MANIFEST_PACKAGE_NAME = '@quenty/nevermoreclimanifest';
|
|
8
|
-
const INJECT_SCRIPT_PATH = resolvePackagePath(import.meta.url, 'build-scripts', 'transform-inject-deploy-metadata.
|
|
8
|
+
const INJECT_SCRIPT_PATH = resolvePackagePath(import.meta.url, 'build-scripts', 'transform-inject-deploy-metadata.lua');
|
|
9
9
|
function _git(args) {
|
|
10
10
|
try {
|
|
11
11
|
return execSync(`git ${args.join(' ')}`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-metadata.js","sourceRoot":"","sources":["../../../src/utils/deploy/deploy-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,8DAA8D;AAC9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;AAYpE,MAAM,kBAAkB,GAAG,kBAAkB,CAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,EACf,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"deploy-metadata.js","sourceRoot":"","sources":["../../../src/utils/deploy/deploy-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Reporter } from '@quenty/cli-output-helpers/reporting';
|
|
2
2
|
import { type BuildPlaceOptions, type BuiltPlace } from '../build/build.js';
|
|
3
|
-
import { type Deployment, type JobContext, type DeployPlaceOptions, type RunScriptOptions, type ScriptRunResult } from './job-context.js';
|
|
3
|
+
import { type Deployment, type JobContext, type DeployPlaceOptions, type RunScriptOptions, type ScriptRunResult, type JobLogs } from './job-context.js';
|
|
4
4
|
import { type OpenCloudClient } from '../open-cloud/open-cloud-client.js';
|
|
5
5
|
import { type BasePlaceResolver } from '@quenty/nevermore-deploy';
|
|
6
6
|
/**
|
|
@@ -29,7 +29,7 @@ export declare abstract class BaseJobContext implements JobContext {
|
|
|
29
29
|
releaseBuiltPlaceAsync(builtPlace: BuiltPlace): Promise<void>;
|
|
30
30
|
abstract deployBuiltPlaceAsync(options: DeployPlaceOptions): Promise<Deployment>;
|
|
31
31
|
abstract runScriptAsync(deployment: Deployment, options: RunScriptOptions): Promise<ScriptRunResult>;
|
|
32
|
-
abstract getLogsAsync(deployment: Deployment): Promise<
|
|
32
|
+
abstract getLogsAsync(deployment: Deployment): Promise<JobLogs>;
|
|
33
33
|
abstract releaseAsync(deployment: Deployment): Promise<void>;
|
|
34
34
|
disposeAsync(): Promise<void>;
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/base-job-context.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"base-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/base-job-context.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,OAAO,EACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAiClE;;;;;;;;;GASG;AACH,8BAAsB,cAAe,YAAW,UAAU;IACxD,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC9B,SAAS,CAAC,gBAAgB,EAAE,eAAe,GAAG,SAAS,CAAC;IACxD,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,iBAAiB,CAAsC;gBAG7D,QAAQ,EAAE,QAAQ,EAClB,eAAe,CAAC,EAAE,eAAe,EACjC,iBAAiB,CAAC,EAAE,iBAAiB;IAOjC,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAsCtE,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,qBAAqB;YAYf,4BAA4B;YA2B5B,mBAAmB;YAenB,oBAAoB;IAgF5B,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BnE,QAAQ,CAAC,qBAAqB,CAC5B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC;IACtB,QAAQ,CAAC,cAAc,CACrB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAC/D,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAEtD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAiDpC"}
|
|
@@ -3,7 +3,7 @@ import * as path from 'path';
|
|
|
3
3
|
import { BuildContext, resolvePackagePath, } from '@quenty/nevermore-template-helpers';
|
|
4
4
|
import { OutputHelper } from '@quenty/cli-output-helpers';
|
|
5
5
|
import { buildPlaceAsync, } from '../build/build.js';
|
|
6
|
-
const MERGE_SCRIPT_PATH = resolvePackagePath(import.meta.url, 'build-scripts', 'transform-rojo-merge-place.
|
|
6
|
+
const MERGE_SCRIPT_PATH = resolvePackagePath(import.meta.url, 'build-scripts', 'transform-rojo-merge-place.lua');
|
|
7
7
|
class TrackedBuiltPlace {
|
|
8
8
|
rbxlPath;
|
|
9
9
|
target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/base-job-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,YAAY,EACZ,kBAAkB,GACnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/base-job-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
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';
|
|
2
|
+
import { type BuiltPlace, type Deployment, type DeployPlaceOptions, type JobContext, type RunScriptOptions, type ScriptRunResult, type JobLogs } from './job-context.js';
|
|
3
3
|
import { type BuildPlaceOptions } from '../build/build.js';
|
|
4
4
|
import { type BatchTarget } from '../batch/changed-packages-utils.js';
|
|
5
|
+
import { type BatchDiagnosticLevel, type BatchPackageResult } from '../testing/parsers/batch-log-parser.js';
|
|
6
|
+
import { type LogFetchStats } from '../testing/log-fetch-stats.js';
|
|
7
|
+
import { type RenderableLogLine } from '../testing/parsers/batch-log-renderer.js';
|
|
5
8
|
/**
|
|
6
9
|
* JobContext wrapper that batches all packages into a single build, upload, and
|
|
7
10
|
* execution. Wraps an inner context (cloud or local) and intercepts all methods
|
|
@@ -14,6 +17,30 @@ import { type BatchTarget } from '../batch/changed-packages-utils.js';
|
|
|
14
17
|
* package configured with one — those belong in `nevermore batch test
|
|
15
18
|
* --no-aggregated`, or in an integration deploy.
|
|
16
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Everything one aggregated batch produced, as data.
|
|
22
|
+
*
|
|
23
|
+
* The execution used to parse, render and print from in here. Printing from a
|
|
24
|
+
* job context put presentation in the transport, bypassed whatever reporter the
|
|
25
|
+
* command had chosen — output written straight to the console is invisible to a
|
|
26
|
+
* SpinnerReporter's capture — and left the whole path untestable without spying
|
|
27
|
+
* on `console.log`. The context returns this instead, and the command layer
|
|
28
|
+
* decides what to show.
|
|
29
|
+
*/
|
|
30
|
+
export interface BatchExecutionOutcome {
|
|
31
|
+
results: Map<string, BatchPackageResult>;
|
|
32
|
+
/** The run's output, typed by severity and not yet rendered. */
|
|
33
|
+
lines: RenderableLogLine[];
|
|
34
|
+
/** What the fetch had to do to collect it; absent for a transport that cannot say. */
|
|
35
|
+
stats?: LogFetchStats;
|
|
36
|
+
/** What reading the log turned up, to report after the log itself. */
|
|
37
|
+
diagnostics: Array<{
|
|
38
|
+
level: BatchDiagnosticLevel;
|
|
39
|
+
message: string;
|
|
40
|
+
}>;
|
|
41
|
+
/** Section slug to package name, for whoever titles the sections. */
|
|
42
|
+
slugToPackage: Map<string, string>;
|
|
43
|
+
}
|
|
17
44
|
export declare class BatchScriptJobContext implements JobContext {
|
|
18
45
|
private _inner;
|
|
19
46
|
private _batchTargets;
|
|
@@ -37,7 +64,15 @@ export declare class BatchScriptJobContext implements JobContext {
|
|
|
37
64
|
buildPlaceAsync(options: BuildPlaceOptions): Promise<BuiltPlace>;
|
|
38
65
|
deployBuiltPlaceAsync(options: DeployPlaceOptions): Promise<Deployment>;
|
|
39
66
|
runScriptAsync(deployment: Deployment, options: RunScriptOptions): Promise<ScriptRunResult>;
|
|
40
|
-
|
|
67
|
+
/**
|
|
68
|
+
* Run the batch if it has not run, and hand back everything it produced.
|
|
69
|
+
*
|
|
70
|
+
* Public so the command layer can render the run once, before the
|
|
71
|
+
* per-package loop asks for results — which is also what keeps the shared
|
|
72
|
+
* build and upload out of any one package's async context.
|
|
73
|
+
*/
|
|
74
|
+
getExecutionOutcomeAsync(): Promise<BatchExecutionOutcome>;
|
|
75
|
+
getLogsAsync(deployment: Deployment): Promise<JobLogs>;
|
|
41
76
|
releaseAsync(_deployment: Deployment): Promise<void>;
|
|
42
77
|
releaseBuiltPlaceAsync(_builtPlace: BuiltPlace): Promise<void>;
|
|
43
78
|
disposeAsync(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-script-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/batch-script-job-context.ts"],"names":[],"mappings":"AAMA,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,
|
|
1
|
+
{"version":3,"file":"batch-script-job-context.d.ts","sourceRoot":"","sources":["../../../src/utils/job-context/batch-script-job-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { resolveTemplatePath, } from '@quenty/nevermore-template-helpers';
|
|
|
3
3
|
import { OutputHelper } from '@quenty/cli-output-helpers';
|
|
4
4
|
import { generateCombinedProjectAsync, } from '../testing/runner/combined-project-generator.js';
|
|
5
5
|
import { parseBatchTestLogs, } from '../testing/parsers/batch-log-parser.js';
|
|
6
|
+
import { toRenderableLines, } from '../testing/parsers/batch-log-renderer.js';
|
|
6
7
|
/** Per-package deployment handle. Wraps a shared inner deployment. */
|
|
7
8
|
class BatchDeployment {
|
|
8
9
|
packageName;
|
|
@@ -12,18 +13,6 @@ class BatchDeployment {
|
|
|
12
13
|
this.inner = inner;
|
|
13
14
|
}
|
|
14
15
|
}
|
|
15
|
-
/**
|
|
16
|
-
* JobContext wrapper that batches all packages into a single build, upload, and
|
|
17
|
-
* execution. Wraps an inner context (cloud or local) and intercepts all methods
|
|
18
|
-
* using the lazy-promise pattern: the first concurrent call triggers the shared
|
|
19
|
-
* operation, all others await the same promise.
|
|
20
|
-
*
|
|
21
|
-
* Note that a `basePlace` cannot be honoured here: every package is combined
|
|
22
|
-
* into one place, so there is no per-package place to merge Studio content
|
|
23
|
-
* into. Rather than silently drop that content, the constructor warns for any
|
|
24
|
-
* package configured with one — those belong in `nevermore batch test
|
|
25
|
-
* --no-aggregated`, or in an integration deploy.
|
|
26
|
-
*/
|
|
27
16
|
export class BatchScriptJobContext {
|
|
28
17
|
_inner;
|
|
29
18
|
_batchTargets;
|
|
@@ -71,8 +60,8 @@ export class BatchScriptJobContext {
|
|
|
71
60
|
}
|
|
72
61
|
async runScriptAsync(deployment, options) {
|
|
73
62
|
const batchDeployment = deployment;
|
|
74
|
-
const
|
|
75
|
-
const result =
|
|
63
|
+
const { results } = await this._getBatchExecutionAsync();
|
|
64
|
+
const result = results.get(batchDeployment.packageName);
|
|
76
65
|
if (!result) {
|
|
77
66
|
return { success: false };
|
|
78
67
|
}
|
|
@@ -80,13 +69,36 @@ export class BatchScriptJobContext {
|
|
|
80
69
|
success: result.success,
|
|
81
70
|
durationMs: result.durationMs,
|
|
82
71
|
errorMessage: result.error,
|
|
72
|
+
// returnValues stays absent: one execution covers every package, so
|
|
73
|
+
// nothing it returns belongs to any single one of them. The batch runner
|
|
74
|
+
// folds each package's own results into the batch summary, which the log
|
|
75
|
+
// parser has already split back out — so they are handed over decoded
|
|
76
|
+
// rather than left for the caller to find in a return value that is not
|
|
77
|
+
// this package's.
|
|
78
|
+
testResults: result.testResults,
|
|
79
|
+
logsLost: result.logsLost,
|
|
83
80
|
};
|
|
84
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Run the batch if it has not run, and hand back everything it produced.
|
|
84
|
+
*
|
|
85
|
+
* Public so the command layer can render the run once, before the
|
|
86
|
+
* per-package loop asks for results — which is also what keeps the shared
|
|
87
|
+
* build and upload out of any one package's async context.
|
|
88
|
+
*/
|
|
89
|
+
async getExecutionOutcomeAsync() {
|
|
90
|
+
return this._getBatchExecutionAsync();
|
|
91
|
+
}
|
|
85
92
|
async getLogsAsync(deployment) {
|
|
86
93
|
const batchDeployment = deployment;
|
|
87
|
-
const
|
|
88
|
-
const result =
|
|
89
|
-
|
|
94
|
+
const { results, stats } = await this._getBatchExecutionAsync();
|
|
95
|
+
const result = results.get(batchDeployment.packageName);
|
|
96
|
+
// The text is this package's section; the stats describe the one fetch that
|
|
97
|
+
// pulled every section, which is what happened to any package whose own
|
|
98
|
+
// section went missing from it. Messages stay empty: severity is per
|
|
99
|
+
// message across the whole window, and slicing it per package would need
|
|
100
|
+
// the section boundaries the parser already resolved.
|
|
101
|
+
return { text: result?.logs ?? '', messages: [], stats };
|
|
90
102
|
}
|
|
91
103
|
async releaseAsync(_deployment) {
|
|
92
104
|
// No-op — shared deployment released in disposeAsync
|
|
@@ -198,7 +210,7 @@ export class BatchScriptJobContext {
|
|
|
198
210
|
const deployment = await this._getSharedDeploymentAsync();
|
|
199
211
|
const { slugMap } = buildState.combinedResult;
|
|
200
212
|
// Build the batch Luau script from the template
|
|
201
|
-
const templatePath = resolveTemplatePath(import.meta.url, 'batch-test-runner.
|
|
213
|
+
const templatePath = resolveTemplatePath(import.meta.url, 'batch-test-runner.lua');
|
|
202
214
|
const template = await fs.readFile(templatePath, 'utf-8');
|
|
203
215
|
const slugArray = [...slugMap.values()];
|
|
204
216
|
const batchScript = template.replaceAll('{{ PACKAGE_SLUGS_JSON }}', JSON.stringify(slugArray));
|
|
@@ -208,8 +220,9 @@ export class BatchScriptJobContext {
|
|
|
208
220
|
packageName: '_batch_',
|
|
209
221
|
timeoutMs: this._batchTimeoutMs,
|
|
210
222
|
});
|
|
211
|
-
// Fetch the combined logs
|
|
212
|
-
const
|
|
223
|
+
// Fetch the combined logs, with the severity and fetch that produced them.
|
|
224
|
+
const logs = await this._inner.getLogsAsync(deployment);
|
|
225
|
+
const rawLogs = logs.text;
|
|
213
226
|
if (!result.success) {
|
|
214
227
|
const stateInfo = result.taskState ? ` (state: ${result.taskState})` : '';
|
|
215
228
|
OutputHelper.warn(`Batch execution task did not complete successfully${stateInfo} — parsing partial results`);
|
|
@@ -221,8 +234,32 @@ export class BatchScriptJobContext {
|
|
|
221
234
|
}
|
|
222
235
|
OutputHelper.verbose(`Raw batch logs:\n${rawLogs || '(empty)'}`);
|
|
223
236
|
}
|
|
224
|
-
// Parse into per-package results
|
|
225
|
-
|
|
237
|
+
// Parse into per-package results. Diagnostics are collected rather than
|
|
238
|
+
// printed: they describe the log window, so they belong after it, and that
|
|
239
|
+
// is the caller's ordering to make.
|
|
240
|
+
const diagnostics = [];
|
|
241
|
+
const results = parseBatchTestLogs(rawLogs, slugMap, {
|
|
242
|
+
logFetchStats: logs.stats,
|
|
243
|
+
// The batch script returns the same summary it prints. Handing both over
|
|
244
|
+
// lets the parser read the copy that cannot arrive truncated, and fall
|
|
245
|
+
// back to the printed one on a transport that carries no return channel.
|
|
246
|
+
returnValues: result.returnValues,
|
|
247
|
+
onDiagnostic: (level, message) => diagnostics.push({ level, message }),
|
|
248
|
+
});
|
|
249
|
+
const slugToPackage = new Map();
|
|
250
|
+
for (const [packageName, slug] of slugMap) {
|
|
251
|
+
slugToPackage.set(slug, packageName);
|
|
252
|
+
}
|
|
253
|
+
// Typed messages when the transport carries severity; otherwise the joined
|
|
254
|
+
// text, which renders uncolored rather than guessed at.
|
|
255
|
+
const messages = logs.messages.length > 0 ? logs.messages : [{ message: rawLogs }];
|
|
256
|
+
return {
|
|
257
|
+
results,
|
|
258
|
+
lines: toRenderableLines(messages),
|
|
259
|
+
stats: logs.stats,
|
|
260
|
+
diagnostics,
|
|
261
|
+
slugToPackage,
|
|
262
|
+
};
|
|
226
263
|
}
|
|
227
264
|
}
|
|
228
265
|
//# sourceMappingURL=batch-script-job-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-script-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/batch-script-job-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAEL,mBAAmB,GACpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
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,13 +1,13 @@
|
|
|
1
1
|
import { type Reporter } from '@quenty/cli-output-helpers/reporting';
|
|
2
2
|
import { type OpenCloudClient } from '../open-cloud/open-cloud-client.js';
|
|
3
|
-
import { type Deployment, type DeployPlaceOptions, type RunScriptOptions, type ScriptRunResult } from './job-context.js';
|
|
3
|
+
import { type Deployment, type DeployPlaceOptions, type JobLogs, type RunScriptOptions, type ScriptRunResult } from './job-context.js';
|
|
4
4
|
import { type BasePlaceResolver } from '@quenty/nevermore-deploy';
|
|
5
5
|
import { BaseJobContext } from './base-job-context.js';
|
|
6
6
|
export declare class CloudJobContext extends BaseJobContext {
|
|
7
7
|
constructor(reporter: Reporter, openCloudClient: OpenCloudClient, basePlaceResolver?: BasePlaceResolver);
|
|
8
8
|
deployBuiltPlaceAsync(options: DeployPlaceOptions): Promise<Deployment>;
|
|
9
9
|
runScriptAsync(deployment: Deployment, options: RunScriptOptions): Promise<ScriptRunResult>;
|
|
10
|
-
getLogsAsync(deployment: Deployment): Promise<
|
|
10
|
+
getLogsAsync(deployment: Deployment): Promise<JobLogs>;
|
|
11
11
|
releaseAsync(_deployment: Deployment): Promise<void>;
|
|
12
12
|
disposeAsync(): Promise<void>;
|
|
13
13
|
}
|
|
@@ -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,
|
|
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,EAGL,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAkBvD,qBAAa,eAAgB,SAAQ,cAAc;gBAE/C,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,iBAAiB,CAAC,EAAE,iBAAiB;IAKjC,qBAAqB,CACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,UAAU,CAAC;IAgChB,cAAc,CAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;IA8DrB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBtD,YAAY,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getTaskReturnValues, } from '../open-cloud/open-cloud-client.js';
|
|
1
2
|
import { tryRenamePlaceAsync } from '@quenty/nevermore-cli-helpers';
|
|
2
3
|
import { buildPlaceNameAsync, timeoutAsync } from '../nevermore-cli-utils.js';
|
|
3
4
|
import { BaseJobContext } from './base-job-context.js';
|
|
@@ -81,6 +82,7 @@ export class CloudJobContext extends BaseJobContext {
|
|
|
81
82
|
success: completedTask.state === 'COMPLETE',
|
|
82
83
|
taskState: completedTask.state,
|
|
83
84
|
errorMessage,
|
|
85
|
+
returnValues: getTaskReturnValues(completedTask),
|
|
84
86
|
};
|
|
85
87
|
}
|
|
86
88
|
async getLogsAsync(deployment) {
|
|
@@ -88,13 +90,16 @@ export class CloudJobContext extends BaseJobContext {
|
|
|
88
90
|
if (!cloudDeployment.taskPath) {
|
|
89
91
|
throw new Error('No task has been run yet');
|
|
90
92
|
}
|
|
91
|
-
const
|
|
93
|
+
const fetched = await this._openCloudClient.getRawTaskLogsAsync(cloudDeployment.taskPath);
|
|
92
94
|
if (cloudDeployment.taskState && cloudDeployment.taskState !== 'COMPLETE') {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
.join('\n')
|
|
95
|
+
const note = `Task ended with state: ${cloudDeployment.taskState}`;
|
|
96
|
+
return {
|
|
97
|
+
text: [fetched.text, note].filter(Boolean).join('\n'),
|
|
98
|
+
messages: [...fetched.messages, { message: note }],
|
|
99
|
+
stats: fetched.stats,
|
|
100
|
+
};
|
|
96
101
|
}
|
|
97
|
-
return
|
|
102
|
+
return fetched;
|
|
98
103
|
}
|
|
99
104
|
async releaseAsync(_deployment) {
|
|
100
105
|
// No-op for cloud — place stays on cloud, task metadata discarded with the handle.
|