@quenty/nevermore-cli 4.28.1 → 4.29.0-canary.697.26191410126.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 +20 -0
- package/dist/commands/batch-command/batch-deploy-command.js +9 -2
- package/dist/commands/batch-command/batch-deploy-command.js.map +1 -1
- package/dist/commands/batch-command/batch-test-command.d.ts +1 -0
- package/dist/commands/batch-command/batch-test-command.d.ts.map +1 -1
- package/dist/commands/batch-command/batch-test-command.js +14 -4
- package/dist/commands/batch-command/batch-test-command.js.map +1 -1
- package/dist/commands/deploy-command/index.d.ts.map +1 -1
- package/dist/commands/deploy-command/index.js +20 -20
- package/dist/commands/deploy-command/index.js.map +1 -1
- package/dist/commands/deploy-command/select-target.d.ts +10 -0
- package/dist/commands/deploy-command/select-target.d.ts.map +1 -0
- package/dist/commands/deploy-command/select-target.js +53 -0
- package/dist/commands/deploy-command/select-target.js.map +1 -0
- package/dist/commands/test-command/test-command.d.ts +1 -0
- package/dist/commands/test-command/test-command.d.ts.map +1 -1
- package/dist/commands/test-command/test-command.js +42 -27
- package/dist/commands/test-command/test-command.js.map +1 -1
- package/dist/utils/batch/batch-runner.js +1 -1
- package/dist/utils/batch/batch-runner.js.map +1 -1
- package/dist/utils/build/deploy-config.d.ts +4 -3
- package/dist/utils/build/deploy-config.d.ts.map +1 -1
- package/dist/utils/build/deploy-config.js +7 -3
- package/dist/utils/build/deploy-config.js.map +1 -1
- package/dist/utils/build/deploy-config.test.d.ts +2 -0
- package/dist/utils/build/deploy-config.test.d.ts.map +1 -0
- package/dist/utils/build/deploy-config.test.js +41 -0
- package/dist/utils/build/deploy-config.test.js.map +1 -0
- package/dist/utils/job-context/cloud-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/cloud-job-context.js +5 -2
- package/dist/utils/job-context/cloud-job-context.js.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.d.ts +2 -1
- package/dist/utils/open-cloud/open-cloud-client.d.ts.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.js +39 -14
- package/dist/utils/open-cloud/open-cloud-client.js.map +1 -1
- package/package.json +6 -6
- package/src/commands/batch-command/batch-deploy-command.ts +8 -4
- package/src/commands/batch-command/batch-test-command.ts +15 -5
- package/src/commands/deploy-command/index.ts +21 -24
- package/src/commands/deploy-command/select-target.ts +80 -0
- package/src/commands/test-command/test-command.ts +48 -33
- package/src/utils/batch/batch-runner.ts +1 -1
- package/src/utils/build/deploy-config.test.ts +51 -0
- package/src/utils/build/deploy-config.ts +7 -3
- package/src/utils/job-context/cloud-job-context.ts +10 -2
- package/src/utils/open-cloud/open-cloud-client.ts +54 -14
- package/templates/game-template/.github/workflows/{deploy.yml → integration.yml} +30 -26
- package/templates/game-template/.github/workflows/tests.yml +30 -20
- package/templates/game-template/README.md +22 -1
- package/templates/game-template/aftman.toml +1 -0
- package/templates/game-template/default.project.json +3 -0
- package/templates/game-template/package.json +7 -2
- package/templates/game-template/src/modules/jest.config.lua +4 -0
- package/templates/game-template/src/scripts/Server/ServerMain.server.lua +6 -0
- package/templates/plugin-template/.github/workflows/{deploy.yml → integration.yml} +30 -26
- package/templates/plugin-template/.github/workflows/tests.yml +18 -13
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-config.js","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAoB7B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB;IAElB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,sCAAsC,UAAU,8CAA8C,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,6BAA6B,CACpE,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,0CAA0C,CAC1D,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,uCAAuC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,uCAAuC,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YAC7B,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,oDAAoD,CACpE,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACjD,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,iDAAiD,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,UAAkB;IAElB,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb;YACE,WAAW,UAAU,uCAAuC;YAC5D,sBAAsB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"deploy-config.js","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-config.test.d.ts","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { resolveDefaultTargetName, } from './deploy-config.js';
|
|
3
|
+
function makeTarget(placeId) {
|
|
4
|
+
return {
|
|
5
|
+
universeId: 1,
|
|
6
|
+
placeId,
|
|
7
|
+
project: 'default.project.json',
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function makeConfig(targets) {
|
|
11
|
+
return { targets };
|
|
12
|
+
}
|
|
13
|
+
describe('resolveDefaultTargetName', () => {
|
|
14
|
+
it('returns the only target when there is just one', () => {
|
|
15
|
+
const config = makeConfig({ prod: makeTarget(1) });
|
|
16
|
+
expect(resolveDefaultTargetName(config)).toBe('prod');
|
|
17
|
+
});
|
|
18
|
+
it('prefers integration over test when both exist', () => {
|
|
19
|
+
const config = makeConfig({
|
|
20
|
+
test: makeTarget(1),
|
|
21
|
+
integration: makeTarget(2),
|
|
22
|
+
});
|
|
23
|
+
expect(resolveDefaultTargetName(config)).toBe('integration');
|
|
24
|
+
});
|
|
25
|
+
it('falls back to test when integration is absent', () => {
|
|
26
|
+
const config = makeConfig({ test: makeTarget(1), dev: makeTarget(2) });
|
|
27
|
+
expect(resolveDefaultTargetName(config)).toBe('test');
|
|
28
|
+
});
|
|
29
|
+
it('returns integration when present alongside non-test targets', () => {
|
|
30
|
+
const config = makeConfig({
|
|
31
|
+
integration: makeTarget(1),
|
|
32
|
+
dev: makeTarget(2),
|
|
33
|
+
});
|
|
34
|
+
expect(resolveDefaultTargetName(config)).toBe('integration');
|
|
35
|
+
});
|
|
36
|
+
it('throws when no preferred target exists and multiple options are present', () => {
|
|
37
|
+
const config = makeConfig({ foo: makeTarget(1), bar: makeTarget(2) });
|
|
38
|
+
expect(() => resolveDefaultTargetName(config)).toThrowError(/foo, bar/);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=deploy-config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-config.test.js","sourceRoot":"","sources":["../../../src/utils/build/deploy-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAGL,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO;QACL,UAAU,EAAE,CAAC;QACb,OAAO;QACP,OAAO,EAAE,sBAAsB;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,OAAqC;IACvD,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YACnB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YAC1B,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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,KAAK,eAAe,EACrB,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;gBACrC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe;IAI1D,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;
|
|
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,KAAK,eAAe,EACrB,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;gBACrC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe;IAI1D,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;IA4CrB,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"}
|
|
@@ -42,7 +42,10 @@ export class CloudJobContext extends BaseJobContext {
|
|
|
42
42
|
const cloudDeployment = deployment;
|
|
43
43
|
const { scriptContent, packageName, timeoutMs = 120_000 } = options;
|
|
44
44
|
this._reporter.onPackagePhaseChange(packageName, 'scheduling');
|
|
45
|
-
const task = await this._openCloudClient.createExecutionTaskAsync(cloudDeployment.universeId, cloudDeployment.placeId, cloudDeployment.version, scriptContent);
|
|
45
|
+
const task = await this._openCloudClient.createExecutionTaskAsync(cloudDeployment.universeId, cloudDeployment.placeId, cloudDeployment.version, scriptContent, timeoutMs);
|
|
46
|
+
// Give the server-side timeout a head start so we observe the cancelled
|
|
47
|
+
// task state instead of bailing out on the client first.
|
|
48
|
+
const CLIENT_TIMEOUT_GRACE_MS = 30_000;
|
|
46
49
|
let pollCount = 0;
|
|
47
50
|
const completedTask = await Promise.race([
|
|
48
51
|
this._openCloudClient.pollTaskCompletionAsync(task.path, (state) => {
|
|
@@ -58,7 +61,7 @@ export class CloudJobContext extends BaseJobContext {
|
|
|
58
61
|
label,
|
|
59
62
|
});
|
|
60
63
|
}),
|
|
61
|
-
timeoutAsync(timeoutMs, `Test timed out after ${timeoutMs / 1000}s`),
|
|
64
|
+
timeoutAsync(timeoutMs + CLIENT_TIMEOUT_GRACE_MS, `Test timed out after ${timeoutMs / 1000}s`),
|
|
62
65
|
]);
|
|
63
66
|
cloudDeployment.taskPath = task.path;
|
|
64
67
|
cloudDeployment.taskState = completedTask.state;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAO9E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAEjC,MAAM,eAAe;IACnB,UAAU,CAAS;IACnB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,QAAQ,CAAU;IAClB,SAAS,CAAqB;IAE9B,YAAY,UAAkB,EAAE,OAAe,EAAE,OAAe;QAC9D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAY,QAAkB,EAAE,eAAgC;QAC9D,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,OAA2B;QAE3B,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACzD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QAExC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAiB,CAAC,gBAAgB,CAC3D,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,EACd,QAAQ,EACR,SAAS,EACT,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE;gBAClD,IAAI,EAAE,OAAO;gBACb,gBAAgB,EAAE,WAAW;gBAC7B,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,4EAA4E;QAC5E,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE9C,yDAAyD;QACzD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;YACzD,MAAM,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,UAAsB,EACtB,OAAyB;QAEzB,MAAM,eAAe,GAAG,UAA6B,CAAC;QACtD,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;QAEpE,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAiB,CAAC,wBAAwB,CAChE,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,OAAO,EACvB,aAAa,
|
|
1
|
+
{"version":3,"file":"cloud-job-context.js","sourceRoot":"","sources":["../../../src/utils/job-context/cloud-job-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export interface LuauTask {
|
|
|
7
7
|
user: string;
|
|
8
8
|
state: 'STATE_UNSPECIFIED' | 'QUEUED' | 'PROCESSING' | 'CANCELLED' | 'COMPLETE' | 'FAILED';
|
|
9
9
|
script: string;
|
|
10
|
+
timeout?: string;
|
|
10
11
|
}
|
|
11
12
|
export interface OpenCloudClientOptions {
|
|
12
13
|
apiKey: string | (() => Promise<string>);
|
|
@@ -19,7 +20,7 @@ export declare class OpenCloudClient {
|
|
|
19
20
|
constructor(options: OpenCloudClientOptions);
|
|
20
21
|
private _resolveApiKeyAsync;
|
|
21
22
|
uploadPlaceAsync(universeId: number, placeId: number, rbxlPath: string, publish?: boolean, onProgress?: (transferredBytes: number, totalBytes: number) => void): Promise<number>;
|
|
22
|
-
createExecutionTaskAsync(universeId: number, placeId: number, placeVersion: number, script: string): Promise<LuauTask>;
|
|
23
|
+
createExecutionTaskAsync(universeId: number, placeId: number, placeVersion: number, script: string, timeoutMs?: number): Promise<LuauTask>;
|
|
23
24
|
pollTaskCompletionAsync(taskPath: string, onProgress?: (state: LuauTask['state']) => void): Promise<LuauTask>;
|
|
24
25
|
getTaskLogsAsync(taskPath: string): Promise<ParsedTestLogs>;
|
|
25
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-cloud-client.d.ts","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EACD,mBAAmB,GACnB,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"open-cloud-client.d.ts","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EACD,mBAAmB,GACnB,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,UAAU,GACV,QAAQ,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAsDD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,YAAY,CAAc;gBAEtB,OAAO,EAAE,sBAAsB;YAQ7B,mBAAmB;IAW3B,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,OAAO,EACjB,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GAClE,OAAO,CAAC,MAAM,CAAC;IAiGZ,wBAAwB,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,QAAQ,CAAC;IAiDd,uBAAuB,CAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,GAC9C,OAAO,CAAC,QAAQ,CAAC;IAkCd,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAKjE;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAgB9C,kBAAkB;IAoDhC;;;;;OAKG;IACG,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;CAqDnB"}
|
|
@@ -124,16 +124,22 @@ export class OpenCloudClient {
|
|
|
124
124
|
const data = (await response.json());
|
|
125
125
|
return data.versionNumber;
|
|
126
126
|
}
|
|
127
|
-
async createExecutionTaskAsync(universeId, placeId, placeVersion, script) {
|
|
127
|
+
async createExecutionTaskAsync(universeId, placeId, placeVersion, script, timeoutMs) {
|
|
128
128
|
const apiKey = await this._resolveApiKeyAsync();
|
|
129
129
|
const url = `https://apis.roblox.com/cloud/v2/universes/${universeId}/places/${placeId}/versions/${placeVersion}/luau-execution-session-tasks`;
|
|
130
|
+
const body = { script, enableBinaryOutput: false };
|
|
131
|
+
if (timeoutMs !== undefined) {
|
|
132
|
+
// Roblox encodes durations as Google AIP duration strings (e.g. "120s").
|
|
133
|
+
// The server uses this to cancel runaway scripts on its end.
|
|
134
|
+
body.timeout = `${Math.max(1, Math.ceil(timeoutMs / 1000))}s`;
|
|
135
|
+
}
|
|
130
136
|
const response = await this._rateLimiter.fetchAsync(url, {
|
|
131
137
|
method: 'POST',
|
|
132
138
|
headers: {
|
|
133
139
|
'Content-Type': 'application/json',
|
|
134
140
|
'X-API-Key': apiKey,
|
|
135
141
|
},
|
|
136
|
-
body: JSON.stringify(
|
|
142
|
+
body: JSON.stringify(body),
|
|
137
143
|
});
|
|
138
144
|
if (!response.ok) {
|
|
139
145
|
const text = await response.text();
|
|
@@ -192,18 +198,37 @@ export class OpenCloudClient {
|
|
|
192
198
|
}
|
|
193
199
|
async _fetchRawLogsAsync(taskPath) {
|
|
194
200
|
const apiKey = await this._resolveApiKeyAsync();
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
201
|
+
const messages = [];
|
|
202
|
+
let pageToken;
|
|
203
|
+
do {
|
|
204
|
+
const url = new URL(`https://apis.roblox.com/cloud/v2/${taskPath}/logs`);
|
|
205
|
+
url.searchParams.set('view', 'STRUCTURED');
|
|
206
|
+
if (pageToken) {
|
|
207
|
+
url.searchParams.set('pageToken', pageToken);
|
|
208
|
+
}
|
|
209
|
+
const response = await this._rateLimiter.fetchAsync(url.toString(), {
|
|
210
|
+
method: 'GET',
|
|
211
|
+
headers: {
|
|
212
|
+
'X-API-Key': apiKey,
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
if (!response.ok) {
|
|
216
|
+
const text = await response.text();
|
|
217
|
+
throw new Error(`Get logs failed: ${response.status}: ${text}`);
|
|
218
|
+
}
|
|
219
|
+
const data = (await response.json());
|
|
220
|
+
for (const entry of data.luauExecutionSessionTaskLogs ?? []) {
|
|
221
|
+
if (entry.structuredMessages?.length) {
|
|
222
|
+
for (const msg of entry.structuredMessages) {
|
|
223
|
+
messages.push(msg.message);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else if (entry.messages?.length) {
|
|
227
|
+
messages.push(...entry.messages);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
pageToken = data.nextPageToken || undefined;
|
|
231
|
+
} while (pageToken);
|
|
207
232
|
return messages.join('\n');
|
|
208
233
|
}
|
|
209
234
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-cloud-client.js","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EACL,aAAa,GAEd,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"open-cloud-client.js","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/nevermore-cli",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.29.0-canary.697.26191410126.0",
|
|
4
4
|
"description": "CLI interface for Nevermore",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"Quenty"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@quenty/cli-output-helpers": "1.
|
|
29
|
-
"@quenty/nevermore-cli-helpers": "1.
|
|
30
|
-
"@quenty/nevermore-template-helpers": "1.
|
|
31
|
-
"@quenty/studio-bridge": "0.
|
|
28
|
+
"@quenty/cli-output-helpers": "1.14.0-canary.697.26191410126.0",
|
|
29
|
+
"@quenty/nevermore-cli-helpers": "1.13.0-canary.697.26191410126.0",
|
|
30
|
+
"@quenty/nevermore-template-helpers": "1.15.0-canary.697.26191410126.0",
|
|
31
|
+
"@quenty/studio-bridge": "0.12.0-canary.697.26191410126.0",
|
|
32
32
|
"execa": "^9.6.1",
|
|
33
33
|
"find-git-root": "^1.0.4",
|
|
34
34
|
"inquirer": "^13.2.0",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"engines": {
|
|
58
58
|
"node": ">=16"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "c9c842433333fede662e0e36cde35e9a060ef7ca"
|
|
61
61
|
}
|
|
@@ -179,6 +179,7 @@ async function _runAsync(args: BatchDeployArgs): Promise<void> {
|
|
|
179
179
|
|
|
180
180
|
await reporter.startAsync();
|
|
181
181
|
|
|
182
|
+
let exitCode = 0;
|
|
182
183
|
try {
|
|
183
184
|
const results = await runBatchAsync<BatchDeployResult>({
|
|
184
185
|
packages,
|
|
@@ -239,13 +240,16 @@ async function _runAsync(args: BatchDeployArgs): Promise<void> {
|
|
|
239
240
|
};
|
|
240
241
|
},
|
|
241
242
|
});
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
243
|
+
if (results.summary.failed > 0) exitCode = 1;
|
|
244
|
+
} catch (err) {
|
|
245
|
+
OutputHelper.error(err instanceof Error ? err.message : String(err));
|
|
246
|
+
exitCode = 1;
|
|
246
247
|
} finally {
|
|
247
248
|
await context.disposeAsync();
|
|
248
249
|
}
|
|
250
|
+
|
|
251
|
+
await reporter.stopAsync();
|
|
252
|
+
process.exit(exitCode);
|
|
249
253
|
}
|
|
250
254
|
|
|
251
255
|
function _annotateSmokeTestFailure(logs: string): string {
|
|
@@ -24,7 +24,6 @@ import {
|
|
|
24
24
|
import {
|
|
25
25
|
type LiveStateTracker,
|
|
26
26
|
type BatchTestResult,
|
|
27
|
-
type BatchTestSummary,
|
|
28
27
|
CompositeReporter,
|
|
29
28
|
GithubCommentTableReporter,
|
|
30
29
|
GroupedReporter,
|
|
@@ -51,6 +50,7 @@ interface BatchTestArgs extends NevermoreGlobalArgs {
|
|
|
51
50
|
aggregated?: boolean;
|
|
52
51
|
batchPlaceId?: number;
|
|
53
52
|
batchUniverseId?: number;
|
|
53
|
+
timeout?: number;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export const batchTestCommand: CommandModule<
|
|
@@ -112,6 +112,11 @@ export const batchTestCommand: CommandModule<
|
|
|
112
112
|
describe:
|
|
113
113
|
'Override universeId for the aggregated batch upload (--aggregated only)',
|
|
114
114
|
type: 'number',
|
|
115
|
+
})
|
|
116
|
+
.option('timeout', {
|
|
117
|
+
describe:
|
|
118
|
+
'Per-package script execution time in seconds. Sent to the Open Cloud API so Roblox cancels server-side on overrun (default: 120)',
|
|
119
|
+
type: 'number',
|
|
115
120
|
});
|
|
116
121
|
},
|
|
117
122
|
handler: async (args) => {
|
|
@@ -200,7 +205,7 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
|
|
|
200
205
|
});
|
|
201
206
|
}
|
|
202
207
|
|
|
203
|
-
const timeoutMs =
|
|
208
|
+
const timeoutMs = (args.timeout ?? 120) * 1000;
|
|
204
209
|
|
|
205
210
|
// In aggregated mode, the inner context gets a broadcast reporter that translates
|
|
206
211
|
// phase changes from the shared '_batch_' operation to all real packages
|
|
@@ -222,9 +227,10 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
|
|
|
222
227
|
: innerContext;
|
|
223
228
|
|
|
224
229
|
await reporter.startAsync();
|
|
225
|
-
|
|
230
|
+
|
|
231
|
+
let exitCode = 0;
|
|
226
232
|
try {
|
|
227
|
-
results = await runBatchAsync<BatchTestResult>({
|
|
233
|
+
const results = await runBatchAsync<BatchTestResult>({
|
|
228
234
|
packages,
|
|
229
235
|
concurrency,
|
|
230
236
|
reporter,
|
|
@@ -248,6 +254,10 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
|
|
|
248
254
|
};
|
|
249
255
|
},
|
|
250
256
|
});
|
|
257
|
+
if (results.summary.failed > 0) exitCode = 1;
|
|
258
|
+
} catch (err) {
|
|
259
|
+
OutputHelper.error(OutputHelper.formatErrorChain(err));
|
|
260
|
+
exitCode = 1;
|
|
251
261
|
} finally {
|
|
252
262
|
await context.disposeAsync();
|
|
253
263
|
}
|
|
@@ -256,7 +266,7 @@ async function _runAsync(args: BatchTestArgs): Promise<void> {
|
|
|
256
266
|
|
|
257
267
|
// Node.js fetch (undici) keeps TCP connections alive in a global pool,
|
|
258
268
|
// which prevents the event loop from draining. Explicit exit required.
|
|
259
|
-
process.exit(
|
|
269
|
+
process.exit(exitCode);
|
|
260
270
|
}
|
|
261
271
|
|
|
262
272
|
async function _runWithRetryAsync(
|
|
@@ -16,12 +16,8 @@ import { OpenCloudClient } from '../../utils/open-cloud/open-cloud-client.js';
|
|
|
16
16
|
import { RateLimiter } from '../../utils/open-cloud/rate-limiter.js';
|
|
17
17
|
import { CloudJobContext } from '../../utils/job-context/cloud-job-context.js';
|
|
18
18
|
import { readPackageNameAsync } from '../../utils/nevermore-cli-utils.js';
|
|
19
|
-
import {
|
|
20
|
-
loadDeployConfigAsync,
|
|
21
|
-
resolveDefaultTargetName,
|
|
22
|
-
resolveDeployConfigPath,
|
|
23
|
-
} from '../../utils/build/deploy-config.js';
|
|
24
19
|
import { handleInitAsync } from './deploy-init.js';
|
|
20
|
+
import { selectTargetAsync } from './select-target.js';
|
|
25
21
|
|
|
26
22
|
export interface DeployArgs extends NevermoreGlobalArgs {
|
|
27
23
|
apiKey?: string;
|
|
@@ -158,15 +154,11 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
|
|
|
158
154
|
const cwd = process.cwd();
|
|
159
155
|
const packageName = (await readPackageNameAsync(cwd)) ?? path.basename(cwd);
|
|
160
156
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const config = await loadDeployConfigAsync(resolveDeployConfigPath(cwd));
|
|
167
|
-
targetName = resolveDefaultTargetName(config);
|
|
168
|
-
targetAutoDetected = true;
|
|
169
|
-
}
|
|
157
|
+
const { targetName, autoDetected: targetAutoDetected } =
|
|
158
|
+
await selectTargetAsync(cwd, {
|
|
159
|
+
explicitTarget: args.target,
|
|
160
|
+
publish: args.publish ?? false,
|
|
161
|
+
});
|
|
170
162
|
|
|
171
163
|
const useSpinner = process.stdout.isTTY && !args.verbose;
|
|
172
164
|
const showLogs = args.logs ?? false;
|
|
@@ -219,6 +211,8 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
|
|
|
219
211
|
const startMs = Date.now();
|
|
220
212
|
reporter.onPackageStart(packageName);
|
|
221
213
|
|
|
214
|
+
let exitCode = 0;
|
|
215
|
+
let publishedVersion: number | undefined;
|
|
222
216
|
try {
|
|
223
217
|
const builtPlace = await context.buildPlaceAsync({
|
|
224
218
|
targetName,
|
|
@@ -235,6 +229,7 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
|
|
|
235
229
|
reporter,
|
|
236
230
|
packageName,
|
|
237
231
|
});
|
|
232
|
+
publishedVersion = version;
|
|
238
233
|
|
|
239
234
|
const durationMs = Date.now() - startMs;
|
|
240
235
|
const action = args.publish ? 'Published' : 'Saved';
|
|
@@ -245,13 +240,6 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
|
|
|
245
240
|
durationMs,
|
|
246
241
|
progressSummary: { kind: 'version', version },
|
|
247
242
|
});
|
|
248
|
-
|
|
249
|
-
if (args.publish) {
|
|
250
|
-
OutputHelper.info(`Published v${version} — live in game.`);
|
|
251
|
-
} else {
|
|
252
|
-
OutputHelper.info(`Saved v${version} — not yet live.`);
|
|
253
|
-
OutputHelper.hint('Use --publish to make it live in game.');
|
|
254
|
-
}
|
|
255
243
|
} catch (err) {
|
|
256
244
|
const durationMs = Date.now() - startMs;
|
|
257
245
|
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
@@ -263,13 +251,22 @@ export class DeployCommand<T> implements CommandModule<T, DeployArgs> {
|
|
|
263
251
|
durationMs,
|
|
264
252
|
error: errorMessage,
|
|
265
253
|
});
|
|
266
|
-
|
|
267
|
-
await reporter.stopAsync();
|
|
268
|
-
throw err;
|
|
254
|
+
exitCode = 1;
|
|
269
255
|
} finally {
|
|
270
256
|
await context.disposeAsync();
|
|
271
257
|
}
|
|
272
258
|
|
|
273
259
|
await reporter.stopAsync();
|
|
260
|
+
|
|
261
|
+
if (publishedVersion !== undefined) {
|
|
262
|
+
if (args.publish) {
|
|
263
|
+
OutputHelper.info(`Published v${publishedVersion} — live in game.`);
|
|
264
|
+
} else {
|
|
265
|
+
OutputHelper.info(`Saved v${publishedVersion} — not yet live.`);
|
|
266
|
+
OutputHelper.hint('Use --publish to make it live in game.');
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
if (exitCode !== 0) process.exit(exitCode);
|
|
274
271
|
}
|
|
275
272
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import {
|
|
3
|
+
type DeployConfig,
|
|
4
|
+
loadDeployConfigAsync,
|
|
5
|
+
resolveDefaultTargetName,
|
|
6
|
+
resolveDeployConfigPath,
|
|
7
|
+
} from '../../utils/build/deploy-config.js';
|
|
8
|
+
|
|
9
|
+
export interface SelectTargetOptions {
|
|
10
|
+
explicitTarget?: string;
|
|
11
|
+
publish: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface SelectTargetResult {
|
|
15
|
+
targetName: string;
|
|
16
|
+
autoDetected: boolean;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export async function selectTargetAsync(
|
|
20
|
+
cwd: string,
|
|
21
|
+
options: SelectTargetOptions
|
|
22
|
+
): Promise<SelectTargetResult> {
|
|
23
|
+
if (options.explicitTarget) {
|
|
24
|
+
return { targetName: options.explicitTarget, autoDetected: false };
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const config = await loadDeployConfigAsync(resolveDeployConfigPath(cwd));
|
|
28
|
+
const targets = Object.keys(config.targets);
|
|
29
|
+
|
|
30
|
+
if (targets.length <= 1 || !_canPrompt()) {
|
|
31
|
+
return {
|
|
32
|
+
targetName: resolveDefaultTargetName(config),
|
|
33
|
+
autoDetected: true,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const targetName = await _promptForTargetAsync(config, options.publish);
|
|
38
|
+
return { targetName, autoDetected: false };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function _canPrompt(): boolean {
|
|
42
|
+
return Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async function _promptForTargetAsync(
|
|
46
|
+
config: DeployConfig,
|
|
47
|
+
publish: boolean
|
|
48
|
+
): Promise<string> {
|
|
49
|
+
const targets = Object.keys(config.targets);
|
|
50
|
+
const preferred = _preferredTarget(targets);
|
|
51
|
+
const orderedTargets = preferred
|
|
52
|
+
? [preferred, ...targets.filter((t) => t !== preferred)]
|
|
53
|
+
: targets;
|
|
54
|
+
|
|
55
|
+
const choices = orderedTargets.map((name) => {
|
|
56
|
+
const target = config.targets[name]!;
|
|
57
|
+
return {
|
|
58
|
+
name: `${name} (place ${target.placeId})`,
|
|
59
|
+
value: name,
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const action = publish ? 'publish' : 'deploy';
|
|
64
|
+
const { selection } = await inquirer.prompt<{ selection: string }>([
|
|
65
|
+
{
|
|
66
|
+
type: 'select',
|
|
67
|
+
name: 'selection',
|
|
68
|
+
message: `Select a target to ${action} to:`,
|
|
69
|
+
choices,
|
|
70
|
+
default: preferred,
|
|
71
|
+
},
|
|
72
|
+
]);
|
|
73
|
+
return selection;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function _preferredTarget(targets: string[]): string | undefined {
|
|
77
|
+
if (targets.includes('integration')) return 'integration';
|
|
78
|
+
if (targets.includes('test')) return 'test';
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|