@glubean/cli 0.7.0 → 0.8.1
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/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +24 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/load.d.ts +65 -0
- package/dist/commands/load.d.ts.map +1 -0
- package/dist/commands/load.js +462 -0
- package/dist/commands/load.js.map +1 -0
- package/dist/commands/login.d.ts +14 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +110 -49
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/run.d.ts +14 -2
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +216 -122
- package/dist/commands/run.js.map +1 -1
- package/dist/lib/auth.d.ts +57 -0
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +134 -1
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/config.d.ts +17 -6
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +9 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +6 -1
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +6 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/print-plan.d.ts.map +1 -1
- package/dist/lib/print-plan.js +4 -0
- package/dist/lib/print-plan.js.map +1 -1
- package/dist/lib/upload.d.ts +88 -10
- package/dist/lib/upload.d.ts.map +1 -1
- package/dist/lib/upload.js +117 -188
- package/dist/lib/upload.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +57 -7
- package/dist/main.js.map +1 -1
- package/package.json +6 -6
- package/dist/lib/env.d.ts +0 -29
- package/dist/lib/env.d.ts.map +0 -1
- package/dist/lib/env.js +0 -59
- package/dist/lib/env.js.map +0 -1
package/dist/lib/upload.d.ts
CHANGED
|
@@ -1,12 +1,77 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Upload run results and artifacts to Glubean Cloud.
|
|
2
|
+
* Upload run results and artifacts to Glubean Cloud (target model, ADR 0007).
|
|
3
3
|
*
|
|
4
4
|
* Upload flow:
|
|
5
|
-
* 1. POST
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* 1. POST a `RunIngest` envelope to
|
|
6
|
+
* `{apiUrl}/v1/projects/{projectId}/targets/{targetId}/runs` → the created
|
|
7
|
+
* run row (`{ id, ... }`). The run id + a deep link are recorded on the
|
|
8
|
+
* receipt.
|
|
9
|
+
* 2. If artifact files exist, POST them as inline multipart parts to
|
|
10
|
+
* `…/runs/{id}/artifacts` (one part = one artifact, ≤512KB each). Files over
|
|
11
|
+
* the inline cap are skipped (presigned R2 upload is an M6 follow-up).
|
|
12
|
+
*/
|
|
13
|
+
export type RunKind = "test" | "load";
|
|
14
|
+
export type RunStatus = "passed" | "failed" | "errored" | "running" | "cancelled";
|
|
15
|
+
export type FailureClass = "timeout" | "crash" | "user_error" | "infra_error";
|
|
16
|
+
/** A per-test row → server `test_result` (single-test history / flaky substrate). */
|
|
17
|
+
export interface RunIngestTest {
|
|
18
|
+
testId: string;
|
|
19
|
+
name: string;
|
|
20
|
+
/** passed | failed | skipped — skipped is excluded from flaky denominators. */
|
|
21
|
+
status: string;
|
|
22
|
+
durationMs: number;
|
|
23
|
+
tags?: string[];
|
|
24
|
+
eventCount?: number;
|
|
25
|
+
}
|
|
26
|
+
/** A time-series metric point → server `run_metric` (latency/rps/percentile trends). */
|
|
27
|
+
export interface RunIngestMetric {
|
|
28
|
+
name: string;
|
|
29
|
+
value: number;
|
|
30
|
+
unit?: string;
|
|
31
|
+
tags?: Record<string, string>;
|
|
32
|
+
ts?: string;
|
|
33
|
+
testId?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Run-level envelope the CALLER assembles from the runner result. The wire body
|
|
37
|
+
* (RunIngest) is built from this + CI/env context inside `uploadToCloud`, so the
|
|
38
|
+
* caller doesn't repeat CI detection / version / environment plumbing.
|
|
39
|
+
*/
|
|
40
|
+
export interface UploadRunInput {
|
|
41
|
+
kind: RunKind;
|
|
42
|
+
/** Payload schema version: "glubean.test.v1" | "glubean.load.v1". */
|
|
43
|
+
schemaVersion: string;
|
|
44
|
+
status: RunStatus;
|
|
45
|
+
/** ISO. */
|
|
46
|
+
startedAt: string;
|
|
47
|
+
/** ISO. */
|
|
48
|
+
completedAt?: string;
|
|
49
|
+
durationMs: number;
|
|
50
|
+
/** Small kind-specific aggregate for list views (validated per-kind server-side). */
|
|
51
|
+
summary: Record<string, unknown>;
|
|
52
|
+
/**
|
|
53
|
+
* The full ExecutionResult / LoadArtifact — stored as a blob, not in the row.
|
|
54
|
+
* MUST be a JSON object and ALREADY redacted (the server does a baseline pass,
|
|
55
|
+
* D6, but the CLI redacts first as the canonical client-side scrub).
|
|
56
|
+
*/
|
|
57
|
+
result: unknown;
|
|
58
|
+
testResults?: RunIngestTest[];
|
|
59
|
+
metrics?: RunIngestMetric[];
|
|
60
|
+
failureClass?: FailureClass;
|
|
61
|
+
failureMessage?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Stable idempotency id for this run (P1). Generated ONCE per CLI invocation
|
|
64
|
+
* and reused across the in-process upload retry, so a lost-response retry
|
|
65
|
+
* REPLACES the run server-side instead of creating a duplicate. A fresh
|
|
66
|
+
* `glubean run`/`load` is a new run (a new id).
|
|
67
|
+
*/
|
|
68
|
+
clientRunId?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Legacy on-disk metadata payload shape, retained for the SEPARATE c/f contract
|
|
72
|
+
* projection line (D7 / M6) — `redactMetadataForUpload` types against
|
|
73
|
+
* `metadata` here. NOT part of the run-data ingest above: per D7 the run upload
|
|
74
|
+
* carries run-data only and drops `contractsProjection`/`workflows`.
|
|
10
75
|
*/
|
|
11
76
|
export interface UploadResultPayload {
|
|
12
77
|
target?: string;
|
|
@@ -94,14 +159,23 @@ export interface UploadOptions {
|
|
|
94
159
|
apiUrl: string;
|
|
95
160
|
token: string;
|
|
96
161
|
projectId: string;
|
|
162
|
+
/** The target (API/system under test) runs belong to — resolved upstream
|
|
163
|
+
* (explicit `upload.targetId` / `GLUBEAN_TARGET_ID`, else the project's
|
|
164
|
+
* default target). Required: the ingest path is `…/targets/{targetId}/runs`. */
|
|
165
|
+
targetId: string;
|
|
97
166
|
envFile?: string;
|
|
98
167
|
rootDir: string;
|
|
168
|
+
/** Skip the `.glubean/artifacts` + `.glubean/screenshots` scan/upload. Load
|
|
169
|
+
* runs set this — those dirs hold TEST artifacts (the LoadArtifact is already
|
|
170
|
+
* the `result` blob), so attaching them would misattribute stale files. */
|
|
171
|
+
skipArtifacts?: boolean;
|
|
99
172
|
}
|
|
100
173
|
export interface UploadReceipt {
|
|
101
174
|
schemaVersion: "glubean.upload-receipt.v1";
|
|
102
175
|
uploadedAt: string;
|
|
103
176
|
apiUrl: string;
|
|
104
177
|
projectId: string;
|
|
178
|
+
targetId: string;
|
|
105
179
|
runId?: string;
|
|
106
180
|
url?: string;
|
|
107
181
|
resultUpload: {
|
|
@@ -115,16 +189,20 @@ export interface UploadReceipt {
|
|
|
115
189
|
status: "skipped" | "uploaded" | "failed";
|
|
116
190
|
attempted: boolean;
|
|
117
191
|
count: number;
|
|
192
|
+
/** Files skipped because they exceed the inline cap (presigned = M6). */
|
|
193
|
+
skipped?: number;
|
|
118
194
|
sizeBytes?: number;
|
|
119
|
-
archiveBytes?: number;
|
|
120
|
-
mode?: "inline" | "presigned";
|
|
121
195
|
statusCode?: number;
|
|
122
196
|
error?: string;
|
|
123
197
|
};
|
|
124
198
|
}
|
|
125
199
|
/**
|
|
126
|
-
* Upload run
|
|
200
|
+
* Upload a run (test or load) + optionally its artifacts to Glubean Cloud under
|
|
201
|
+
* a target (ADR 0007). The caller assembles the run-level `UploadRunInput` from
|
|
202
|
+
* the runner result; this builds the `RunIngest` wire body from it + CI/env
|
|
203
|
+
* context and POSTs to the target-scoped ingest endpoint.
|
|
204
|
+
*
|
|
127
205
|
* All operations are best-effort — failures print a warning but never throw.
|
|
128
206
|
*/
|
|
129
|
-
export declare function uploadToCloud(
|
|
207
|
+
export declare function uploadToCloud(input: UploadRunInput, options: UploadOptions): Promise<UploadReceipt>;
|
|
130
208
|
//# sourceMappingURL=upload.d.ts.map
|
package/dist/lib/upload.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/upload.js
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Upload run results and artifacts to Glubean Cloud.
|
|
2
|
+
* Upload run results and artifacts to Glubean Cloud (target model, ADR 0007).
|
|
3
3
|
*
|
|
4
4
|
* Upload flow:
|
|
5
|
-
* 1. POST
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* 1. POST a `RunIngest` envelope to
|
|
6
|
+
* `{apiUrl}/v1/projects/{projectId}/targets/{targetId}/runs` → the created
|
|
7
|
+
* run row (`{ id, ... }`). The run id + a deep link are recorded on the
|
|
8
|
+
* receipt.
|
|
9
|
+
* 2. If artifact files exist, POST them as inline multipart parts to
|
|
10
|
+
* `…/runs/{id}/artifacts` (one part = one artifact, ≤512KB each). Files over
|
|
11
|
+
* the inline cap are skipped (presigned R2 upload is an M6 follow-up).
|
|
10
12
|
*/
|
|
11
|
-
import { readdir, stat, readFile
|
|
13
|
+
import { readdir, stat, readFile } from "node:fs/promises";
|
|
12
14
|
import { basename, extname, join, relative } from "node:path";
|
|
13
|
-
import { tmpdir } from "node:os";
|
|
14
|
-
import { execFile as execFileCb } from "node:child_process";
|
|
15
|
-
import { promisify } from "node:util";
|
|
16
15
|
import { CLI_VERSION } from "../version.js";
|
|
17
16
|
import { detectCiContext } from "./ci.js";
|
|
18
|
-
const execFileAsync = promisify(execFileCb);
|
|
19
17
|
const colors = {
|
|
20
18
|
reset: "\x1b[0m",
|
|
21
19
|
green: "\x1b[32m",
|
|
@@ -25,6 +23,8 @@ const colors = {
|
|
|
25
23
|
};
|
|
26
24
|
const RESULTS_TIMEOUT_MS = 5_000;
|
|
27
25
|
const ARTIFACT_TIMEOUT_MS = 30_000;
|
|
26
|
+
/** Per-file inline artifact cap — mirrors platform-api `MAX_INLINE_ARTIFACT_BYTES`.
|
|
27
|
+
* Files larger than this are skipped (presigned R2 path is an M6 follow-up). */
|
|
28
28
|
const INLINE_THRESHOLD = 512 * 1024; // 512KB
|
|
29
29
|
const MAX_RETRIES = 1;
|
|
30
30
|
const RETRY_DELAY_MS = 1_000;
|
|
@@ -61,10 +61,24 @@ function createUploadReceipt(options) {
|
|
|
61
61
|
uploadedAt: new Date().toISOString(),
|
|
62
62
|
apiUrl: options.apiUrl,
|
|
63
63
|
projectId: options.projectId,
|
|
64
|
+
targetId: options.targetId,
|
|
64
65
|
resultUpload: { status: "failed" },
|
|
65
66
|
artifactUpload: { status: "skipped", attempted: false, count: 0 },
|
|
66
67
|
};
|
|
67
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Canonical location of an uploaded run — its platform API resource URL
|
|
71
|
+
* (`…/v1/projects/{projectId}/targets/{targetId}/runs/{runId}`). The dashboard
|
|
72
|
+
* run-detail page doesn't exist yet (M2), and app-next has no URL-addressable
|
|
73
|
+
* project context (TargetPage resolves the target under the SESSION's active
|
|
74
|
+
* project, not the URL), so a guessed `app.<host>` link can't reliably resolve
|
|
75
|
+
* cross-project. The API resource URL is real, addressable (with the token),
|
|
76
|
+
* and carries full project+target+run context — the honest "where is my run".
|
|
77
|
+
*/
|
|
78
|
+
function buildRunUrl(apiUrl, projectId, targetId, runId) {
|
|
79
|
+
const base = apiUrl.replace(/\/+$/, "");
|
|
80
|
+
return `${base}/v1/projects/${projectId}/targets/${targetId}/runs/${runId}`;
|
|
81
|
+
}
|
|
68
82
|
function toErrorMessage(err) {
|
|
69
83
|
return err instanceof Error ? err.message : String(err);
|
|
70
84
|
}
|
|
@@ -101,24 +115,6 @@ function extToMime(ext) {
|
|
|
101
115
|
};
|
|
102
116
|
return map[ext.toLowerCase()] ?? "application/octet-stream";
|
|
103
117
|
}
|
|
104
|
-
function extToArtifactType(ext) {
|
|
105
|
-
const map = {
|
|
106
|
-
".png": "screenshot",
|
|
107
|
-
".jpg": "screenshot",
|
|
108
|
-
".jpeg": "screenshot",
|
|
109
|
-
".gif": "screenshot",
|
|
110
|
-
".webp": "screenshot",
|
|
111
|
-
".html": "html",
|
|
112
|
-
".har": "har",
|
|
113
|
-
".json": "data",
|
|
114
|
-
".jsonl": "data",
|
|
115
|
-
".csv": "data",
|
|
116
|
-
".txt": "log",
|
|
117
|
-
".log": "log",
|
|
118
|
-
".xml": "report",
|
|
119
|
-
};
|
|
120
|
-
return map[ext.toLowerCase()] ?? "other";
|
|
121
|
-
}
|
|
122
118
|
/** Recursively walk a directory and collect file paths */
|
|
123
119
|
async function walkDir(dir) {
|
|
124
120
|
const files = [];
|
|
@@ -140,36 +136,49 @@ async function walkDir(dir) {
|
|
|
140
136
|
return files;
|
|
141
137
|
}
|
|
142
138
|
/**
|
|
143
|
-
* Upload run
|
|
139
|
+
* Upload a run (test or load) + optionally its artifacts to Glubean Cloud under
|
|
140
|
+
* a target (ADR 0007). The caller assembles the run-level `UploadRunInput` from
|
|
141
|
+
* the runner result; this builds the `RunIngest` wire body from it + CI/env
|
|
142
|
+
* context and POSTs to the target-scoped ingest endpoint.
|
|
143
|
+
*
|
|
144
144
|
* All operations are best-effort — failures print a warning but never throw.
|
|
145
145
|
*/
|
|
146
|
-
export async function uploadToCloud(
|
|
147
|
-
const { apiUrl, token, projectId, rootDir } = options;
|
|
146
|
+
export async function uploadToCloud(input, options) {
|
|
147
|
+
const { apiUrl, token, projectId, targetId, rootDir } = options;
|
|
148
148
|
const receipt = createUploadReceipt(options);
|
|
149
149
|
const ci = detectCiContext();
|
|
150
|
-
// ── Step 1:
|
|
150
|
+
// ── Step 1: Ingest the run (RunIngest envelope) ──
|
|
151
|
+
// Per D7 the run upload carries run-data ONLY — no contract/workflow
|
|
152
|
+
// projection (that's the separate c/f line). `result` is the full
|
|
153
|
+
// ExecutionResult / LoadArtifact blob (already redacted by the caller).
|
|
151
154
|
const body = {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
+
kind: input.kind,
|
|
156
|
+
schemaVersion: input.schemaVersion,
|
|
157
|
+
status: input.status,
|
|
158
|
+
startedAt: input.startedAt,
|
|
159
|
+
...(input.completedAt ? { completedAt: input.completedAt } : {}),
|
|
160
|
+
durationMs: input.durationMs,
|
|
161
|
+
summary: input.summary,
|
|
162
|
+
// The server schema requires `result` to be a JSON object (z.record).
|
|
163
|
+
result: input.result ?? {},
|
|
164
|
+
...(input.testResults && input.testResults.length ? { testResults: input.testResults } : {}),
|
|
165
|
+
...(input.metrics && input.metrics.length ? { metrics: input.metrics } : {}),
|
|
166
|
+
...(input.failureClass ? { failureClass: input.failureClass } : {}),
|
|
167
|
+
...(input.failureMessage ? { failureMessage: input.failureMessage } : {}),
|
|
168
|
+
...(input.clientRunId ? { clientRunId: input.clientRunId } : {}),
|
|
169
|
+
// CI / provenance dimensions (filterable on the dashboard).
|
|
170
|
+
trigger: ci.source,
|
|
171
|
+
...(ci.gitRef ? { gitRef: ci.gitRef } : {}),
|
|
172
|
+
...(ci.commitSha ? { commitSha: ci.commitSha } : {}),
|
|
173
|
+
...(ci.runUrl ? { ciRunUrl: ci.runUrl } : {}),
|
|
174
|
+
runnerVersion: CLI_VERSION,
|
|
155
175
|
environment: resolveUploadEnvironment(options.envFile),
|
|
156
|
-
gitRef: ci.gitRef,
|
|
157
|
-
commitSha: ci.commitSha,
|
|
158
|
-
runUrl: ci.runUrl,
|
|
159
|
-
runAt: resultPayload.runAt,
|
|
160
|
-
target: resultPayload.target,
|
|
161
|
-
files: resultPayload.files,
|
|
162
|
-
nodeVersion: process.versions.node,
|
|
163
|
-
os: process.platform,
|
|
164
|
-
summary: resultPayload.summary,
|
|
165
|
-
tests: resultPayload.tests,
|
|
166
|
-
...(resultPayload.metadata && { metadata: resultPayload.metadata }),
|
|
167
|
-
...(resultPayload.customMetadata && { customMetadata: resultPayload.customMetadata }),
|
|
168
176
|
};
|
|
177
|
+
const runsEndpoint = `${apiUrl}/v1/projects/${projectId}/targets/${targetId}/runs`;
|
|
169
178
|
let runId;
|
|
170
179
|
let runUrl;
|
|
171
180
|
try {
|
|
172
|
-
const resp = await fetchWithRetry(
|
|
181
|
+
const resp = await fetchWithRetry(runsEndpoint, {
|
|
173
182
|
method: "POST",
|
|
174
183
|
headers: {
|
|
175
184
|
"Content-Type": "application/json",
|
|
@@ -188,11 +197,12 @@ export async function uploadToCloud(resultPayload, options) {
|
|
|
188
197
|
};
|
|
189
198
|
return receipt;
|
|
190
199
|
}
|
|
200
|
+
// The ingest endpoint returns the created run row (`{ id, ... }`); it does
|
|
201
|
+
// not return a URL, so build the dashboard deep link from the API host.
|
|
191
202
|
const result = await resp.json();
|
|
192
|
-
runId = typeof result.
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const error = "Cloud upload response was missing runId or url.";
|
|
203
|
+
runId = typeof result.id === "string" ? result.id : "";
|
|
204
|
+
if (!runId) {
|
|
205
|
+
const error = "Cloud upload response was missing the run id.";
|
|
196
206
|
console.log(`${colors.yellow}Upload failed: ${error}${colors.reset}`);
|
|
197
207
|
receipt.resultUpload = {
|
|
198
208
|
status: "failed",
|
|
@@ -201,6 +211,7 @@ export async function uploadToCloud(resultPayload, options) {
|
|
|
201
211
|
};
|
|
202
212
|
return receipt;
|
|
203
213
|
}
|
|
214
|
+
runUrl = buildRunUrl(apiUrl, projectId, targetId, runId);
|
|
204
215
|
receipt.runId = runId;
|
|
205
216
|
receipt.url = runUrl;
|
|
206
217
|
receipt.resultUpload = {
|
|
@@ -209,7 +220,7 @@ export async function uploadToCloud(resultPayload, options) {
|
|
|
209
220
|
url: runUrl,
|
|
210
221
|
statusCode: resp.status,
|
|
211
222
|
};
|
|
212
|
-
console.log(`${colors.green}
|
|
223
|
+
console.log(`${colors.green}Run uploaded${colors.reset} ${colors.dim}(${runId}) → ${runUrl}${colors.reset}`);
|
|
213
224
|
}
|
|
214
225
|
catch (err) {
|
|
215
226
|
let error;
|
|
@@ -225,76 +236,70 @@ export async function uploadToCloud(resultPayload, options) {
|
|
|
225
236
|
return receipt;
|
|
226
237
|
}
|
|
227
238
|
// ── Step 2: Upload artifacts (if any) ──
|
|
239
|
+
// The target-scoped endpoint takes inline multipart parts — one part = one
|
|
240
|
+
// artifact, ≤512KB each (the server derives artifactType/mimeType per file).
|
|
241
|
+
// Files over the inline cap are skipped here (presigned R2 = M6 follow-up) so
|
|
242
|
+
// the batch never trips the server's 413.
|
|
243
|
+
// Load runs skip this entirely — `.glubean/artifacts`/`screenshots` are TEST
|
|
244
|
+
// artifacts (the LoadArtifact is the `result` blob), so scanning them would
|
|
245
|
+
// attach stale files from a prior test run to each load run.
|
|
246
|
+
if (options.skipArtifacts)
|
|
247
|
+
return receipt;
|
|
248
|
+
const artifactRoot = join(rootDir, ".glubean");
|
|
228
249
|
const artifactDirs = [
|
|
229
|
-
join(
|
|
230
|
-
join(
|
|
250
|
+
join(artifactRoot, "artifacts"),
|
|
251
|
+
join(artifactRoot, "screenshots"),
|
|
231
252
|
];
|
|
232
|
-
const
|
|
253
|
+
const candidates = [];
|
|
233
254
|
for (const dir of artifactDirs) {
|
|
234
255
|
const dirFiles = await walkDir(dir);
|
|
235
256
|
for (const filePath of dirFiles) {
|
|
236
|
-
|
|
257
|
+
candidates.push({
|
|
237
258
|
path: filePath,
|
|
238
|
-
relativeName: relative(
|
|
259
|
+
relativeName: relative(artifactRoot, filePath),
|
|
239
260
|
});
|
|
240
261
|
}
|
|
241
262
|
}
|
|
242
|
-
if (
|
|
263
|
+
if (candidates.length === 0)
|
|
243
264
|
return receipt;
|
|
244
|
-
let tmpDir;
|
|
245
265
|
try {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
266
|
+
const form = new FormData();
|
|
267
|
+
let uploadedCount = 0;
|
|
268
|
+
let skippedCount = 0;
|
|
269
|
+
let totalSize = 0;
|
|
270
|
+
for (const file of candidates) {
|
|
249
271
|
const s = await stat(file.path);
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
await mkdir(filesDir, { recursive: true });
|
|
264
|
-
for (const file of files) {
|
|
265
|
-
const destPath = join(filesDir, file.relativeName);
|
|
266
|
-
const destDir = destPath.substring(0, destPath.lastIndexOf("/"));
|
|
267
|
-
await mkdir(destDir, { recursive: true });
|
|
268
|
-
await copyFile(file.path, destPath);
|
|
269
|
-
}
|
|
270
|
-
await writeFile(join(stagingDir, "manifest.json"), JSON.stringify(manifest, null, 2), "utf-8");
|
|
271
|
-
const zipPath = join(tmpDir, "artifacts.zip");
|
|
272
|
-
try {
|
|
273
|
-
await execFileAsync("zip", ["-r", zipPath, "."], { cwd: stagingDir });
|
|
272
|
+
if (s.size > INLINE_THRESHOLD) {
|
|
273
|
+
skippedCount += 1;
|
|
274
|
+
console.log(`${colors.yellow}Skipping artifact ${file.relativeName} (${(s.size / 1024).toFixed(0)} KB > 512 KB inline cap)${colors.reset}`);
|
|
275
|
+
continue;
|
|
276
|
+
}
|
|
277
|
+
const bytes = await readFile(file.path);
|
|
278
|
+
const mime = extToMime(extname(file.relativeName));
|
|
279
|
+
// Pass the Buffer (a Uint8Array view) directly — NOT `bytes.buffer`: small
|
|
280
|
+
// files from `readFile` can share a pooled ArrayBuffer at a non-zero
|
|
281
|
+
// byteOffset, so the raw `.buffer` would send neighbouring memory.
|
|
282
|
+
form.append("files", new Blob([bytes], { type: mime }), file.relativeName);
|
|
283
|
+
uploadedCount += 1;
|
|
284
|
+
totalSize += s.size;
|
|
274
285
|
}
|
|
275
|
-
|
|
276
|
-
|
|
286
|
+
if (uploadedCount === 0) {
|
|
287
|
+
// Everything was over the inline cap — record the skip, nothing posted.
|
|
277
288
|
receipt.artifactUpload = {
|
|
278
|
-
status: "
|
|
279
|
-
attempted:
|
|
280
|
-
count:
|
|
281
|
-
|
|
282
|
-
error: "Failed to create artifact archive",
|
|
289
|
+
status: "skipped",
|
|
290
|
+
attempted: false,
|
|
291
|
+
count: 0,
|
|
292
|
+
skipped: skippedCount,
|
|
283
293
|
};
|
|
284
294
|
return receipt;
|
|
285
295
|
}
|
|
286
|
-
const
|
|
287
|
-
const zipSize = zipData.byteLength;
|
|
288
|
-
const outcome = zipSize < INLINE_THRESHOLD
|
|
289
|
-
? await uploadArtifactsInline(apiUrl, token, runId, zipData)
|
|
290
|
-
: await uploadArtifactsPresigned(apiUrl, token, runId, zipData, zipSize);
|
|
296
|
+
const outcome = await uploadArtifacts(apiUrl, token, projectId, targetId, runId, form);
|
|
291
297
|
receipt.artifactUpload = {
|
|
292
298
|
status: outcome.ok ? "uploaded" : "failed",
|
|
293
299
|
attempted: true,
|
|
294
|
-
count:
|
|
300
|
+
count: uploadedCount,
|
|
301
|
+
...(skippedCount > 0 ? { skipped: skippedCount } : {}),
|
|
295
302
|
sizeBytes: totalSize,
|
|
296
|
-
archiveBytes: zipSize,
|
|
297
|
-
mode: outcome.mode,
|
|
298
303
|
...(outcome.statusCode !== undefined ? { statusCode: outcome.statusCode } : {}),
|
|
299
304
|
...(outcome.error ? { error: outcome.error } : {}),
|
|
300
305
|
};
|
|
@@ -303,7 +308,8 @@ export async function uploadToCloud(resultPayload, options) {
|
|
|
303
308
|
const sizeStr = totalSize > 1024 * 1024
|
|
304
309
|
? `${(totalSize / 1024 / 1024).toFixed(1)} MB`
|
|
305
310
|
: `${(totalSize / 1024).toFixed(1)} KB`;
|
|
306
|
-
|
|
311
|
+
const skipNote = skippedCount > 0 ? `, ${skippedCount} skipped` : "";
|
|
312
|
+
console.log(`${colors.green}Artifacts uploaded${colors.reset} ${colors.dim}(${uploadedCount} files, ${sizeStr}${skipNote})${colors.reset}`);
|
|
307
313
|
return receipt;
|
|
308
314
|
}
|
|
309
315
|
catch (err) {
|
|
@@ -319,21 +325,16 @@ export async function uploadToCloud(resultPayload, options) {
|
|
|
319
325
|
receipt.artifactUpload = {
|
|
320
326
|
status: "failed",
|
|
321
327
|
attempted: true,
|
|
322
|
-
count:
|
|
328
|
+
count: candidates.length,
|
|
323
329
|
error,
|
|
324
330
|
};
|
|
325
331
|
return receipt;
|
|
326
332
|
}
|
|
327
|
-
finally {
|
|
328
|
-
if (tmpDir) {
|
|
329
|
-
await rm(tmpDir, { recursive: true, force: true }).catch(() => { });
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
333
|
}
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
const resp = await fetchWithRetry(`${apiUrl}/
|
|
334
|
+
/** POST the prepared multipart form of artifact parts to the run's inline
|
|
335
|
+
* artifact endpoint. Each part becomes one artifact server-side. */
|
|
336
|
+
async function uploadArtifacts(apiUrl, token, projectId, targetId, runId, form) {
|
|
337
|
+
const resp = await fetchWithRetry(`${apiUrl}/v1/projects/${projectId}/targets/${targetId}/runs/${runId}/artifacts`, {
|
|
337
338
|
method: "POST",
|
|
338
339
|
headers: { Authorization: `Bearer ${token}` },
|
|
339
340
|
body: form,
|
|
@@ -342,80 +343,8 @@ async function uploadArtifactsInline(apiUrl, token, runId, zipData) {
|
|
|
342
343
|
if (!resp.ok) {
|
|
343
344
|
const errText = await resp.text();
|
|
344
345
|
console.log(`${colors.yellow}Artifact upload failed (${resp.status}): ${errText}${colors.reset}`);
|
|
345
|
-
return {
|
|
346
|
-
ok: false,
|
|
347
|
-
mode: "inline",
|
|
348
|
-
statusCode: resp.status,
|
|
349
|
-
error: errText,
|
|
350
|
-
};
|
|
351
|
-
}
|
|
352
|
-
return { ok: true, mode: "inline", statusCode: resp.status };
|
|
353
|
-
}
|
|
354
|
-
async function uploadArtifactsPresigned(apiUrl, token, runId, zipData, zipSize) {
|
|
355
|
-
const form = new FormData();
|
|
356
|
-
form.append("size", String(zipSize));
|
|
357
|
-
const urlResp = await fetchWithRetry(`${apiUrl}/open/v1/cli-runs/${runId}/artifacts/upload`, {
|
|
358
|
-
method: "POST",
|
|
359
|
-
headers: { Authorization: `Bearer ${token}` },
|
|
360
|
-
body: form,
|
|
361
|
-
timeoutMs: RESULTS_TIMEOUT_MS,
|
|
362
|
-
});
|
|
363
|
-
if (!urlResp.ok) {
|
|
364
|
-
const errText = await urlResp.text();
|
|
365
|
-
console.log(`${colors.yellow}Artifact upload URL request failed (${urlResp.status}): ${errText}${colors.reset}`);
|
|
366
|
-
return {
|
|
367
|
-
ok: false,
|
|
368
|
-
mode: "presigned",
|
|
369
|
-
statusCode: urlResp.status,
|
|
370
|
-
error: errText,
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
const { signedUrl, archiveKey } = await urlResp.json();
|
|
374
|
-
if (typeof signedUrl !== "string" || typeof archiveKey !== "string") {
|
|
375
|
-
const error = "Artifact upload URL response was missing signedUrl or archiveKey.";
|
|
376
|
-
console.log(`${colors.yellow}${error}${colors.reset}`);
|
|
377
|
-
return {
|
|
378
|
-
ok: false,
|
|
379
|
-
mode: "presigned",
|
|
380
|
-
statusCode: urlResp.status,
|
|
381
|
-
error,
|
|
382
|
-
};
|
|
383
|
-
}
|
|
384
|
-
const putResp = await fetchWithRetry(signedUrl, {
|
|
385
|
-
method: "PUT",
|
|
386
|
-
headers: { "Content-Type": "application/zip" },
|
|
387
|
-
body: zipData,
|
|
388
|
-
timeoutMs: ARTIFACT_TIMEOUT_MS,
|
|
389
|
-
});
|
|
390
|
-
if (!putResp.ok) {
|
|
391
|
-
const errText = await putResp.text().catch(() => "");
|
|
392
|
-
console.log(`${colors.yellow}Artifact upload failed (${putResp.status})${errText ? `: ${errText}` : ""}${colors.reset}`);
|
|
393
|
-
return {
|
|
394
|
-
ok: false,
|
|
395
|
-
mode: "presigned",
|
|
396
|
-
statusCode: putResp.status,
|
|
397
|
-
error: errText || `HTTP ${putResp.status}`,
|
|
398
|
-
};
|
|
399
|
-
}
|
|
400
|
-
const completeResp = await fetchWithRetry(`${apiUrl}/open/v1/cli-runs/${runId}/artifacts/upload/complete`, {
|
|
401
|
-
method: "POST",
|
|
402
|
-
headers: {
|
|
403
|
-
"Content-Type": "application/json",
|
|
404
|
-
Authorization: `Bearer ${token}`,
|
|
405
|
-
},
|
|
406
|
-
body: JSON.stringify({ archiveKey }),
|
|
407
|
-
timeoutMs: RESULTS_TIMEOUT_MS,
|
|
408
|
-
});
|
|
409
|
-
if (!completeResp.ok) {
|
|
410
|
-
const errText = await completeResp.text();
|
|
411
|
-
console.log(`${colors.yellow}Artifact upload completion failed (${completeResp.status}): ${errText}${colors.reset}`);
|
|
412
|
-
return {
|
|
413
|
-
ok: false,
|
|
414
|
-
mode: "presigned",
|
|
415
|
-
statusCode: completeResp.status,
|
|
416
|
-
error: errText,
|
|
417
|
-
};
|
|
346
|
+
return { ok: false, statusCode: resp.status, error: errText };
|
|
418
347
|
}
|
|
419
|
-
return { ok: true,
|
|
348
|
+
return { ok: true, statusCode: resp.status };
|
|
420
349
|
}
|
|
421
350
|
//# sourceMappingURL=upload.js.map
|
package/dist/lib/upload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../src/lib/upload.ts"],"names":[],"mappings":"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"}
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA45BH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|