@quenty/nevermore-cli 4.20.0-canary.664.f984a43.0 → 4.20.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 +3 -2
- package/build-scripts/smoke-test-server.luau +83 -0
- package/build-scripts/transform-rojo-merge-place.luau +123 -0
- package/dist/commands/batch-command/batch-deploy-command.d.ts.map +1 -1
- package/dist/commands/batch-command/batch-deploy-command.js +49 -7
- package/dist/commands/batch-command/batch-deploy-command.js.map +1 -1
- package/dist/commands/batch-command/batch-test-command.d.ts +0 -3
- package/dist/commands/batch-command/batch-test-command.d.ts.map +1 -1
- package/dist/commands/batch-command/batch-test-command.js +11 -27
- package/dist/commands/batch-command/batch-test-command.js.map +1 -1
- package/dist/commands/tools-command/ci-post-deploy-results.d.ts +9 -0
- package/dist/commands/tools-command/ci-post-deploy-results.d.ts.map +1 -0
- package/dist/commands/tools-command/ci-post-deploy-results.js +66 -0
- package/dist/commands/tools-command/ci-post-deploy-results.js.map +1 -0
- package/dist/commands/tools-command/index.d.ts.map +1 -1
- package/dist/commands/tools-command/index.js +2 -0
- package/dist/commands/tools-command/index.js.map +1 -1
- package/dist/utils/auth/credential-store.d.ts.map +1 -1
- package/dist/utils/auth/credential-store.js +1 -0
- package/dist/utils/auth/credential-store.js.map +1 -1
- package/dist/utils/batch/changed-packages-utils.d.ts +3 -1
- package/dist/utils/batch/changed-packages-utils.d.ts.map +1 -1
- package/dist/utils/batch/changed-packages-utils.js +27 -3
- package/dist/utils/batch/changed-packages-utils.js.map +1 -1
- package/dist/utils/build/deploy-config.d.ts +5 -0
- package/dist/utils/build/deploy-config.d.ts.map +1 -1
- package/dist/utils/build/deploy-config.js +8 -0
- package/dist/utils/build/deploy-config.js.map +1 -1
- package/dist/utils/deploy/deploy-github-columns.d.ts +5 -1
- package/dist/utils/deploy/deploy-github-columns.d.ts.map +1 -1
- package/dist/utils/deploy/deploy-github-columns.js +13 -1
- package/dist/utils/deploy/deploy-github-columns.js.map +1 -1
- package/dist/utils/job-context/base-job-context.d.ts +4 -0
- package/dist/utils/job-context/base-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/base-job-context.js +31 -0
- package/dist/utils/job-context/base-job-context.js.map +1 -1
- package/dist/utils/job-context/cloud-job-context.d.ts +1 -2
- package/dist/utils/job-context/cloud-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/cloud-job-context.js +3 -8
- package/dist/utils/job-context/cloud-job-context.js.map +1 -1
- package/dist/utils/job-context/index.d.ts +0 -1
- package/dist/utils/job-context/index.d.ts.map +1 -1
- package/dist/utils/job-context/index.js +0 -1
- package/dist/utils/job-context/index.js.map +1 -1
- package/dist/utils/job-context/local-job-context.d.ts +2 -0
- package/dist/utils/job-context/local-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/local-job-context.js +3 -0
- package/dist/utils/job-context/local-job-context.js.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.d.ts +11 -3
- package/dist/utils/open-cloud/open-cloud-client.d.ts.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.js +71 -5
- package/dist/utils/open-cloud/open-cloud-client.js.map +1 -1
- package/dist/utils/testing/reporting/test-github-columns.d.ts.map +1 -1
- package/dist/utils/testing/reporting/test-github-columns.js +1 -0
- package/dist/utils/testing/reporting/test-github-columns.js.map +1 -1
- package/package.json +6 -6
- package/src/commands/batch-command/batch-deploy-command.ts +80 -17
- package/src/commands/batch-command/batch-test-command.ts +10 -46
- package/src/commands/tools-command/ci-post-deploy-results.ts +98 -0
- package/src/commands/tools-command/index.ts +2 -0
- package/src/utils/auth/credential-store.ts +3 -0
- package/src/utils/batch/changed-packages-utils.ts +32 -3
- package/src/utils/build/deploy-config.ts +18 -0
- package/src/utils/deploy/deploy-github-columns.ts +21 -1
- package/src/utils/job-context/base-job-context.ts +58 -1
- package/src/utils/job-context/cloud-job-context.ts +13 -16
- package/src/utils/job-context/index.ts +0 -1
- package/src/utils/job-context/local-job-context.ts +5 -0
- package/src/utils/open-cloud/open-cloud-client.ts +109 -8
- package/src/utils/testing/reporting/test-github-columns.ts +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build-scripts/combine-test-places.luau +0 -121
- package/dist/utils/job-context/batch-script-job-context.d.ts +0 -44
- package/dist/utils/job-context/batch-script-job-context.d.ts.map +0 -1
- package/dist/utils/job-context/batch-script-job-context.js +0 -197
- package/dist/utils/job-context/batch-script-job-context.js.map +0 -1
- package/dist/utils/testing/parsers/batch-log-parser.d.ts +0 -22
- package/dist/utils/testing/parsers/batch-log-parser.d.ts.map +0 -1
- package/dist/utils/testing/parsers/batch-log-parser.js +0 -99
- package/dist/utils/testing/parsers/batch-log-parser.js.map +0 -1
- package/dist/utils/testing/runner/combined-project-generator.d.ts +0 -27
- package/dist/utils/testing/runner/combined-project-generator.d.ts.map +0 -1
- package/dist/utils/testing/runner/combined-project-generator.js +0 -99
- package/dist/utils/testing/runner/combined-project-generator.js.map +0 -1
- package/src/utils/job-context/batch-script-job-context.ts +0 -294
- package/src/utils/testing/parsers/batch-log-parser.ts +0 -125
- package/src/utils/testing/runner/combined-project-generator.ts +0 -176
- package/templates/batch-test-runner.luau +0 -104
package/CHANGELOG.md
CHANGED
|
@@ -3,12 +3,13 @@
|
|
|
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.20.0
|
|
6
|
+
# [4.20.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@4.19.0...@quenty/nevermore-cli@4.20.0) (2026-02-19)
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
### Features
|
|
10
10
|
|
|
11
|
-
* **cli:** add
|
|
11
|
+
* **cli:** add integration game deploy pipeline with base place merging ([b406938](https://github.com/Quenty/Nevermore/commit/b406938cee6a1af59adb6682eb6319c76c51aa1a))
|
|
12
|
+
* **cli:** merge test and deploy results into single PR comment ([6750feb](https://github.com/Quenty/Nevermore/commit/6750feb4bb5c1075ca9931166aebae01c9333f8d))
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
--[[
|
|
2
|
+
Smoke test script for integration games.
|
|
3
|
+
Collects all Script descendants of ServerScriptService, spawns each
|
|
4
|
+
via task.spawn(loadstring()) so they run concurrently (matching real
|
|
5
|
+
game boot behavior), then waits for errors to surface.
|
|
6
|
+
|
|
7
|
+
Output format is compatible with parseTestLogs (success = no "Stack Begin"
|
|
8
|
+
patterns and no "Tests: N failed" lines).
|
|
9
|
+
]]
|
|
10
|
+
|
|
11
|
+
local ServerScriptService = game:GetService("ServerScriptService")
|
|
12
|
+
|
|
13
|
+
local SETTLE_TIME = 30
|
|
14
|
+
|
|
15
|
+
-- Collect eligible scripts (non-disabled, non-empty, only server Scripts)
|
|
16
|
+
local scripts = {}
|
|
17
|
+
for _, descendant in ServerScriptService:GetDescendants() do
|
|
18
|
+
if descendant:IsA("Script") and not descendant:IsA("LocalScript") and not descendant:IsA("ModuleScript") then
|
|
19
|
+
if descendant.Disabled then
|
|
20
|
+
continue
|
|
21
|
+
end
|
|
22
|
+
local source = descendant.Source
|
|
23
|
+
if source == "" then
|
|
24
|
+
continue
|
|
25
|
+
end
|
|
26
|
+
table.insert(scripts, descendant)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
local failed = 0
|
|
31
|
+
local errors = {}
|
|
32
|
+
|
|
33
|
+
-- Spawn each script concurrently, like the real engine would
|
|
34
|
+
for _, serverScript in scripts do
|
|
35
|
+
local scriptName = serverScript:GetFullName()
|
|
36
|
+
local fn, compileError = loadstring(serverScript.Source, scriptName)
|
|
37
|
+
if not fn then
|
|
38
|
+
failed += 1
|
|
39
|
+
table.insert(errors, {
|
|
40
|
+
script = scriptName,
|
|
41
|
+
error = "Compile error: " .. tostring(compileError),
|
|
42
|
+
})
|
|
43
|
+
continue
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
task.spawn(function()
|
|
47
|
+
local ok, runtimeError = pcall(fn)
|
|
48
|
+
if not ok then
|
|
49
|
+
failed += 1
|
|
50
|
+
table.insert(errors, {
|
|
51
|
+
script = scriptName,
|
|
52
|
+
error = tostring(runtimeError),
|
|
53
|
+
})
|
|
54
|
+
end
|
|
55
|
+
end)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
-- Let spawned scripts run and settle — errors from yielding code
|
|
59
|
+
-- (e.g. WaitForChild, async service calls) surface during this window
|
|
60
|
+
task.wait(SETTLE_TIME)
|
|
61
|
+
|
|
62
|
+
-- Report results
|
|
63
|
+
local total = #scripts
|
|
64
|
+
local passed = total - failed
|
|
65
|
+
|
|
66
|
+
print("=== Smoke Test Results ===")
|
|
67
|
+
print(string.format("Scripts found: %d", total))
|
|
68
|
+
print(string.format("Passed: %d", passed))
|
|
69
|
+
print(string.format("Failed: %d", failed))
|
|
70
|
+
|
|
71
|
+
if #errors > 0 then
|
|
72
|
+
print("")
|
|
73
|
+
for _, err in errors do
|
|
74
|
+
print(string.format("FAIL %s", err.script))
|
|
75
|
+
print(string.format(" %s", err.error))
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
if failed > 0 then
|
|
80
|
+
print(string.format("\nTests: %d failed, %d total", failed, total))
|
|
81
|
+
else
|
|
82
|
+
print(string.format("\nTests: %d passed, %d total", passed, total))
|
|
83
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
local fs = require("@lune/fs")
|
|
2
|
+
local process = require("@lune/process")
|
|
3
|
+
local roblox = require("@lune/roblox")
|
|
4
|
+
local serde = require("@lune/serde")
|
|
5
|
+
|
|
6
|
+
local basePlacePath = process.args[1]
|
|
7
|
+
local codePlacePath = process.args[2]
|
|
8
|
+
local projectFilePath = process.args[3]
|
|
9
|
+
local outputPath = process.args[4]
|
|
10
|
+
|
|
11
|
+
if not basePlacePath or not codePlacePath or not projectFilePath or not outputPath then
|
|
12
|
+
print("Usage: transform-rojo-merge-place <basePlacePath> <codePlacePath> <projectFilePath> <outputPath>")
|
|
13
|
+
process.exit(1)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
local projectJson = serde.decode("json", fs.readFile(projectFilePath))
|
|
17
|
+
local tree = projectJson.tree
|
|
18
|
+
if not tree then
|
|
19
|
+
print("Project file missing 'tree' field")
|
|
20
|
+
process.exit(1)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
local baseContents = fs.readFile(basePlacePath)
|
|
24
|
+
local baseGame = roblox.deserializePlace(baseContents)
|
|
25
|
+
|
|
26
|
+
local codeContents = fs.readFile(codePlacePath)
|
|
27
|
+
local codeGame = roblox.deserializePlace(codeContents)
|
|
28
|
+
|
|
29
|
+
--[[
|
|
30
|
+
Apply $properties from the rojo project onto a base instance.
|
|
31
|
+
This ensures navigation nodes pick up properties like LoadStringEnabled
|
|
32
|
+
that the project file declares but the base place may not have.
|
|
33
|
+
]]
|
|
34
|
+
local function applyProperties(projectNode: { [string]: any }, baseInstance: Instance)
|
|
35
|
+
local properties = projectNode["$properties"]
|
|
36
|
+
if type(properties) ~= "table" then
|
|
37
|
+
return
|
|
38
|
+
end
|
|
39
|
+
for propName, propValue in properties do
|
|
40
|
+
local ok, err = pcall(function()
|
|
41
|
+
(baseInstance :: any)[propName] = propValue
|
|
42
|
+
end)
|
|
43
|
+
if not ok then
|
|
44
|
+
print(string.format("Warning: could not set %s.%s: %s", baseInstance.Name, propName, tostring(err)))
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
--[[
|
|
50
|
+
Walk the project tree and merge graft points from the code place into the
|
|
51
|
+
base place. A node is a "graft point" if it has $path or $className (excluding
|
|
52
|
+
the root DataModel). Navigation nodes (no $path/$className) are traversed
|
|
53
|
+
without replacing anything — matching how rojo serve works.
|
|
54
|
+
]]
|
|
55
|
+
local function findAndMerge(projectNode: { [string]: any }, baseParent: Instance, codeParent: Instance)
|
|
56
|
+
for name, value in projectNode do
|
|
57
|
+
if string.sub(name, 1, 1) == "$" then
|
|
58
|
+
continue
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
if type(value) ~= "table" then
|
|
62
|
+
continue
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
local isGraft = value["$path"] ~= nil or value["$className"] ~= nil
|
|
66
|
+
local baseChild = baseParent:FindFirstChild(name)
|
|
67
|
+
local codeChild = codeParent:FindFirstChild(name)
|
|
68
|
+
|
|
69
|
+
if isGraft and codeChild then
|
|
70
|
+
if baseChild then
|
|
71
|
+
baseChild:Destroy()
|
|
72
|
+
end
|
|
73
|
+
codeChild.Parent = baseParent
|
|
74
|
+
elseif not isGraft and baseChild and codeChild then
|
|
75
|
+
findAndMerge(value, baseChild, codeChild)
|
|
76
|
+
elseif not isGraft and baseChild then
|
|
77
|
+
-- Navigation node exists in base but not code — skip, nothing to merge
|
|
78
|
+
elseif isGraft and not codeChild then
|
|
79
|
+
-- Graft point not found in code build — skip
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
-- The root of the tree is the DataModel itself — we navigate its children
|
|
85
|
+
-- against the top-level services in both game trees.
|
|
86
|
+
for serviceName, serviceNode in tree do
|
|
87
|
+
if string.sub(serviceName, 1, 1) == "$" then
|
|
88
|
+
continue
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
if type(serviceNode) ~= "table" then
|
|
92
|
+
continue
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
local baseService = baseGame:FindFirstChild(serviceName)
|
|
96
|
+
local codeService = codeGame:FindFirstChild(serviceName)
|
|
97
|
+
|
|
98
|
+
if not baseService then
|
|
99
|
+
-- Service doesn't exist in base — if code has it, reparent entirely
|
|
100
|
+
if codeService then
|
|
101
|
+
codeService.Parent = baseGame
|
|
102
|
+
end
|
|
103
|
+
continue
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
if not codeService then
|
|
107
|
+
continue
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
local isGraft = serviceNode["$path"] ~= nil or serviceNode["$className"] ~= nil
|
|
111
|
+
if isGraft then
|
|
112
|
+
-- Entire service is a graft point — replace it
|
|
113
|
+
baseService:Destroy()
|
|
114
|
+
codeService.Parent = baseGame
|
|
115
|
+
else
|
|
116
|
+
-- Navigate into the service and apply any $properties from the project
|
|
117
|
+
applyProperties(serviceNode, baseService)
|
|
118
|
+
findAndMerge(serviceNode, baseService, codeService)
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
local output = roblox.serializePlace(baseGame)
|
|
123
|
+
fs.writeFile(outputPath, output)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-deploy-command.d.ts","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-deploy-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"batch-deploy-command.d.ts","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-deploy-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAYtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAoBhE,UAAU,eAAgB,SAAQ,mBAAmB;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,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,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAC5C,mBAAmB,EACnB,eAAe,CAyDhB,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
1
2
|
import { OutputHelper } from '@quenty/cli-output-helpers';
|
|
2
|
-
import { CompositeReporter,
|
|
3
|
+
import { CompositeReporter, GroupedReporter, JsonFileReporter, SpinnerReporter, SummaryTableReporter, } from '@quenty/cli-output-helpers/reporting';
|
|
4
|
+
import { resolvePackagePath } from '@quenty/nevermore-template-helpers';
|
|
3
5
|
import { getApiKeyAsync } from '../../utils/auth/credential-store.js';
|
|
4
6
|
import { runBatchAsync } from '../../utils/batch/batch-runner.js';
|
|
5
7
|
import { uploadPlaceAsync } from '../../utils/build/upload.js';
|
|
6
|
-
import { createDeployCommentConfig } from '../../utils/deploy/deploy-github-columns.js';
|
|
7
8
|
import { OpenCloudClient } from '../../utils/open-cloud/open-cloud-client.js';
|
|
8
9
|
import { RateLimiter } from '../../utils/open-cloud/rate-limiter.js';
|
|
9
10
|
import { CloudJobContext } from '../../utils/job-context/cloud-job-context.js';
|
|
10
11
|
import { discoverAllTargetPackagesAsync, discoverChangedTargetPackagesAsync, } from '../../utils/batch/changed-packages-utils.js';
|
|
11
12
|
import { isCI } from '../../utils/nevermore-cli-utils.js';
|
|
13
|
+
import { parseTestLogs } from '../../utils/testing/test-log-parser.js';
|
|
14
|
+
const SMOKE_TEST_SCRIPT_PATH = resolvePackagePath(import.meta.url, 'build-scripts', 'smoke-test-server.luau');
|
|
12
15
|
export const batchDeployCommand = {
|
|
13
16
|
command: 'deploy',
|
|
14
17
|
describe: 'Deploy changed packages with deploy targets',
|
|
@@ -68,7 +71,7 @@ export const batchDeployCommand = {
|
|
|
68
71
|
},
|
|
69
72
|
};
|
|
70
73
|
async function _runAsync(args) {
|
|
71
|
-
const targetName = args.target ?? '
|
|
74
|
+
const targetName = args.target ?? 'test';
|
|
72
75
|
let packages = args.all
|
|
73
76
|
? await discoverAllTargetPackagesAsync(targetName)
|
|
74
77
|
: await discoverChangedTargetPackagesAsync(args.base, targetName);
|
|
@@ -110,8 +113,6 @@ async function _runAsync(args) {
|
|
|
110
113
|
...deployLabels,
|
|
111
114
|
summaryVerb: 'deployed',
|
|
112
115
|
}),
|
|
113
|
-
new GithubCommentTableReporter(state, createDeployCommentConfig(), concurrency),
|
|
114
|
-
new GithubJobSummaryReporter(state, createDeployCommentConfig(), concurrency),
|
|
115
116
|
];
|
|
116
117
|
if (args.output) {
|
|
117
118
|
reporters.push(new JsonFileReporter(state, args.output));
|
|
@@ -149,11 +150,29 @@ async function _runAsync(args) {
|
|
|
149
150
|
});
|
|
150
151
|
// Eagerly release build artifacts after upload
|
|
151
152
|
await context.releaseBuiltPlaceAsync(builtPlace);
|
|
152
|
-
|
|
153
|
+
// Run smoke test for targets with basePlace
|
|
154
|
+
let logs;
|
|
155
|
+
if (pkg.target.basePlace) {
|
|
156
|
+
const smokeResult = await _runSmokeTestAsync(pkgReporter, pkg.name, pkg.target.universeId, pkg.target.placeId, version, client);
|
|
157
|
+
logs = smokeResult.logs;
|
|
158
|
+
if (!smokeResult.success) {
|
|
159
|
+
return {
|
|
160
|
+
packageName: pkg.name,
|
|
161
|
+
placeId: pkg.target.placeId,
|
|
162
|
+
success: false,
|
|
163
|
+
logs,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
const action = publish ? 'Published' : 'Saved';
|
|
169
|
+
logs = `${action} v${version}`;
|
|
170
|
+
}
|
|
153
171
|
return {
|
|
154
172
|
packageName: pkg.name,
|
|
173
|
+
placeId: pkg.target.placeId,
|
|
155
174
|
success: true,
|
|
156
|
-
logs
|
|
175
|
+
logs,
|
|
157
176
|
};
|
|
158
177
|
},
|
|
159
178
|
});
|
|
@@ -164,4 +183,27 @@ async function _runAsync(args) {
|
|
|
164
183
|
await context.disposeAsync();
|
|
165
184
|
}
|
|
166
185
|
}
|
|
186
|
+
async function _runSmokeTestAsync(reporter, packageName, universeId, placeId, version, client) {
|
|
187
|
+
let scriptContent;
|
|
188
|
+
try {
|
|
189
|
+
scriptContent = await fs.readFile(SMOKE_TEST_SCRIPT_PATH, 'utf-8');
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
throw new Error(`Smoke test script not found: ${SMOKE_TEST_SCRIPT_PATH}`);
|
|
193
|
+
}
|
|
194
|
+
reporter.onPackagePhaseChange(packageName, 'scheduling');
|
|
195
|
+
const task = await client.createExecutionTaskAsync(universeId, placeId, version, scriptContent);
|
|
196
|
+
const completedTask = await client.pollTaskCompletionAsync(task.path, (state) => {
|
|
197
|
+
if (state === 'PROCESSING') {
|
|
198
|
+
reporter.onPackagePhaseChange(packageName, 'executing');
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
const rawLogs = await client.getRawTaskLogsAsync(task.path);
|
|
202
|
+
const parsed = parseTestLogs(rawLogs);
|
|
203
|
+
const infraSuccess = completedTask.state === 'COMPLETE';
|
|
204
|
+
return {
|
|
205
|
+
success: infraSuccess && parsed.success,
|
|
206
|
+
logs: parsed.logs,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
167
209
|
//# sourceMappingURL=batch-deploy-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-deploy-command.js","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-deploy-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"batch-deploy-command.js","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-deploy-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,6 @@ 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;
|
|
15
12
|
}
|
|
16
13
|
export declare const batchTestCommand: CommandModule<NevermoreGlobalArgs, BatchTestArgs>;
|
|
17
14
|
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;
|
|
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;AA+BhE,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,11 +1,11 @@
|
|
|
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 {
|
|
4
|
+
import { 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';
|
|
8
|
-
import { CompositeReporter,
|
|
8
|
+
import { CompositeReporter, GroupedReporter, JsonFileReporter, SpinnerReporter, SummaryTableReporter, } from '../../utils/testing/reporting/index.js';
|
|
9
9
|
import { runSingleTestAsync, } from '../../utils/testing/runner/test-runner.js';
|
|
10
10
|
import { isCI } from '../../utils/nevermore-cli-utils.js';
|
|
11
11
|
export const batchTestCommand = {
|
|
@@ -48,19 +48,6 @@ 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',
|
|
64
51
|
});
|
|
65
52
|
},
|
|
66
53
|
handler: async (args) => {
|
|
@@ -107,8 +94,6 @@ async function _runAsync(args) {
|
|
|
107
94
|
actionVerb: 'Testing',
|
|
108
95
|
}),
|
|
109
96
|
new SummaryTableReporter(state),
|
|
110
|
-
new GithubCommentTableReporter(state, createTestCommentConfig(), concurrency),
|
|
111
|
-
new GithubJobSummaryReporter(state, createTestCommentConfig(), concurrency),
|
|
112
97
|
];
|
|
113
98
|
if (args.output) {
|
|
114
99
|
reporters.push(new JsonFileReporter(state, args.output));
|
|
@@ -120,18 +105,17 @@ async function _runAsync(args) {
|
|
|
120
105
|
const apiKey = await getApiKeyAsync(args);
|
|
121
106
|
client = new OpenCloudClient({ apiKey, rateLimiter: new RateLimiter() });
|
|
122
107
|
}
|
|
123
|
-
|
|
124
|
-
|
|
108
|
+
else {
|
|
109
|
+
client = new OpenCloudClient({
|
|
110
|
+
apiKey: () => getApiKeyAsync(args),
|
|
111
|
+
rateLimiter: new RateLimiter(),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
const context = cloud
|
|
125
115
|
? new CloudJobContext(client)
|
|
126
|
-
: new LocalJobContext();
|
|
127
|
-
const context = args.aggregated
|
|
128
|
-
? new BatchScriptJobContext(innerContext, packages, {
|
|
129
|
-
batchPlaceId: args.batchPlaceId,
|
|
130
|
-
batchUniverseId: args.batchUniverseId,
|
|
131
|
-
perPackageTimeoutMs: timeoutMs,
|
|
132
|
-
})
|
|
133
|
-
: innerContext;
|
|
116
|
+
: new LocalJobContext(client);
|
|
134
117
|
await reporter.startAsync();
|
|
118
|
+
const timeoutMs = 120_000;
|
|
135
119
|
let results;
|
|
136
120
|
try {
|
|
137
121
|
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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAEL,
|
|
1
|
+
{"version":3,"file":"batch-test-command.js","sourceRoot":"","sources":["../../../src/commands/batch-command/batch-test-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CommandModule } from 'yargs';
|
|
2
|
+
import { NevermoreGlobalArgs } from '../../args/global-args.js';
|
|
3
|
+
interface CiPostDeployResultsArgs extends NevermoreGlobalArgs {
|
|
4
|
+
input: string;
|
|
5
|
+
runOutcome?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const ciPostDeployResultsCommand: CommandModule<NevermoreGlobalArgs, CiPostDeployResultsArgs>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ci-post-deploy-results.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-post-deploy-results.d.ts","sourceRoot":"","sources":["../../../src/commands/tools-command/ci-post-deploy-results.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAStC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAQhE,UAAU,uBAAwB,SAAQ,mBAAmB;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAcD,eAAO,MAAM,0BAA0B,EAAE,aAAa,CACpD,mBAAmB,EACnB,uBAAuB,CA6DxB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { OutputHelper } from '@quenty/cli-output-helpers';
|
|
2
|
+
import { GithubCommentTableReporter, GithubJobSummaryReporter, LoadedStateTracker, } from '@quenty/cli-output-helpers/reporting';
|
|
3
|
+
import { createDeployCommentConfig } from '../../utils/deploy/deploy-github-columns.js';
|
|
4
|
+
/** Create the standard set of GitHub reporters for posting deploy results. */
|
|
5
|
+
function _createGithubReporters(state, concurrency) {
|
|
6
|
+
const config = createDeployCommentConfig();
|
|
7
|
+
return [
|
|
8
|
+
new GithubCommentTableReporter(state, config, concurrency),
|
|
9
|
+
new GithubJobSummaryReporter(state, config, concurrency),
|
|
10
|
+
];
|
|
11
|
+
}
|
|
12
|
+
export const ciPostDeployResultsCommand = {
|
|
13
|
+
command: 'post-deploy-results <input>',
|
|
14
|
+
describe: 'Post deploy results as a PR comment (requires GITHUB_TOKEN and CI context)',
|
|
15
|
+
builder: (yargs) => {
|
|
16
|
+
return yargs
|
|
17
|
+
.positional('input', {
|
|
18
|
+
describe: 'Path to deploy-results.json',
|
|
19
|
+
type: 'string',
|
|
20
|
+
demandOption: true,
|
|
21
|
+
})
|
|
22
|
+
.option('run-outcome', {
|
|
23
|
+
describe: 'Outcome of the deploy step (e.g. "success", "failure"). ' +
|
|
24
|
+
'When the results file is missing and run-outcome is "success", ' +
|
|
25
|
+
'posts a neutral "no deploys" comment instead of an error.',
|
|
26
|
+
type: 'string',
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
handler: async (args) => {
|
|
30
|
+
try {
|
|
31
|
+
let state;
|
|
32
|
+
try {
|
|
33
|
+
state = await LoadedStateTracker.fromFileAsync(args.input);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
OutputHelper.warn(`Results file not found: ${args.input}`);
|
|
37
|
+
const reporters = _createGithubReporters(undefined);
|
|
38
|
+
if (args.runOutcome === 'success') {
|
|
39
|
+
OutputHelper.info('Deploy step succeeded — posting informational comment to PR...');
|
|
40
|
+
for (const r of reporters) {
|
|
41
|
+
r.setNoTestsRun('No changed packages with deploy targets were discovered for this PR.');
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
OutputHelper.info('Deploy step failed — posting failure comment to PR...');
|
|
46
|
+
for (const r of reporters) {
|
|
47
|
+
r.setError(`Results file not found: ${args.input}\nThe deploy run likely crashed before completing.`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
for (const r of reporters) {
|
|
51
|
+
await r.stopAsync();
|
|
52
|
+
}
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const reporters = _createGithubReporters(state, 1);
|
|
56
|
+
for (const r of reporters) {
|
|
57
|
+
await r.stopAsync();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
OutputHelper.error(err instanceof Error ? err.message : String(err));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=ci-post-deploy-results.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-post-deploy-results.js","sourceRoot":"","sources":["../../../src/commands/tools-command/ci-post-deploy-results.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAGL,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAYxF,8EAA8E;AAC9E,SAAS,sBAAsB,CAC7B,KAAgC,EAChC,WAAoB;IAEpB,MAAM,MAAM,GAAG,yBAAyB,EAAE,CAAC;IAC3C,OAAO;QACL,IAAI,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC;QAC1D,IAAI,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAGnC;IACF,OAAO,EAAE,6BAA6B;IACtC,QAAQ,EACN,4EAA4E;IAC9E,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QACjB,OAAO,KAAK;aACT,UAAU,CAAC,OAAO,EAAE;YACnB,QAAQ,EAAE,6BAA6B;YACvC,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,IAAI;SACnB,CAAC;aACD,MAAM,CAAC,aAAa,EAAE;YACrB,QAAQ,EACN,0DAA0D;gBAC1D,iEAAiE;gBACjE,2DAA2D;YAC7D,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,IAAI,KAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAE3D,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAEpD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAClC,YAAY,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;oBACpF,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;wBAC1B,CAAC,CAAC,aAAa,CACb,sEAAsE,CACvE,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;oBAC3E,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;wBAC1B,CAAC,CAAC,QAAQ,CACR,2BAA2B,IAAI,CAAC,KAAK,oDAAoD,CAC1F,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;oBAC1B,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;gBACtB,CAAC;gBACD,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/tools-command/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/tools-command/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAOhE,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,mBAAmB,CAAC;IACpE,OAAO,SAAwB;IAC/B,QAAQ,SAAuC;IAE/C,OAAO,GAAI,MAAM,IAAI,CAAC,CAAC,CAAC,KAMd,IAAI,CAAC,mBAAmB,CAAC,CACxC;IAEK,OAAO,sBAAkB;CACjC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ciPostDeployResultsCommand } from './ci-post-deploy-results.js';
|
|
1
2
|
import { ciPostLintResultsCommand } from './ci-post-lint-results.js';
|
|
2
3
|
import { ciPostTestResultsCommand } from './ci-post-test-results.js';
|
|
3
4
|
import { DownloadRobloxTypes } from './download-roblox-types.js';
|
|
@@ -6,6 +7,7 @@ export class ToolsCommand {
|
|
|
6
7
|
command = 'tools <subcommand>';
|
|
7
8
|
describe = 'Internal tooling and CI utilities';
|
|
8
9
|
builder = (args) => {
|
|
10
|
+
args.command(ciPostDeployResultsCommand);
|
|
9
11
|
args.command(ciPostLintResultsCommand);
|
|
10
12
|
args.command(ciPostTestResultsCommand);
|
|
11
13
|
args.command(new DownloadRobloxTypes());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/tools-command/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,OAAO,YAAY;IAChB,OAAO,GAAG,oBAAoB,CAAC;IAC/B,QAAQ,GAAG,mCAAmC,CAAC;IAE/C,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE;QACjC,IAAI,CAAC,OAAO,CAAC,wBAA+B,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,wBAA+B,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,EAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,yBAAgC,CAAC,CAAC;QAC/C,OAAO,IAAiC,CAAC;IAC3C,CAAC,CAAC;IAEK,OAAO,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;CACjC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/tools-command/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,OAAO,YAAY;IAChB,OAAO,GAAG,oBAAoB,CAAC;IAC/B,QAAQ,GAAG,mCAAmC,CAAC;IAE/C,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE;QACjC,IAAI,CAAC,OAAO,CAAC,0BAAiC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,wBAA+B,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,wBAA+B,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,EAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,yBAAgC,CAAC,CAAC;QAC/C,OAAO,IAAiC,CAAC;IAC3C,CAAC,CAAC;IAEK,OAAO,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;CACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/utils/auth/credential-store.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAKD,wBAAgB,oBAAoB,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"credential-store.d.ts","sourceRoot":"","sources":["../../../src/utils/auth/credential-store.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAKD,wBAAgB,oBAAoB,IAAI,IAAI,CAgB3C;AAMD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQzE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtD;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CA8B1E;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB9C"}
|
|
@@ -13,6 +13,7 @@ export function printApiKeySetupHelp() {
|
|
|
13
13
|
console.log(' - universe-places:write (upload place files)');
|
|
14
14
|
console.log(' - universe.place.luau-execution-session:write (run scripts)');
|
|
15
15
|
console.log(' - universe.place.luau-execution-session:read (read results)');
|
|
16
|
+
console.log(' - legacy-asset:manage (download base places for integration builds)');
|
|
16
17
|
console.log('');
|
|
17
18
|
}
|
|
18
19
|
export async function loadStoredApiKeyAsync() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../../src/utils/auth/credential-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"credential-store.js","sourceRoot":"","sources":["../../../src/utils/auth/credential-store.ts"],"names":[],"mappings":"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"}
|