@alwaysmeticulous/cli 2.299.0 → 2.303.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/dist/command-utils/detect-upload-mode.d.ts +12 -0
- package/dist/command-utils/detect-upload-mode.d.ts.map +1 -0
- package/dist/command-utils/detect-upload-mode.js +27 -0
- package/dist/command-utils/detect-upload-mode.js.map +1 -0
- package/dist/command-utils/detect-upload-mode.spec.d.ts +2 -0
- package/dist/command-utils/detect-upload-mode.spec.d.ts.map +1 -0
- package/dist/command-utils/detect-upload-mode.spec.js +30 -0
- package/dist/command-utils/detect-upload-mode.spec.js.map +1 -0
- package/dist/command-utils/parse-container-env.d.ts +9 -0
- package/dist/command-utils/parse-container-env.d.ts.map +1 -0
- package/dist/command-utils/parse-container-env.js +23 -0
- package/dist/command-utils/parse-container-env.js.map +1 -0
- package/dist/command-utils/parse-rewrites.d.ts +2 -2
- package/dist/command-utils/parse-rewrites.d.ts.map +1 -1
- package/dist/command-utils/parse-rewrites.js +11 -16
- package/dist/command-utils/parse-rewrites.js.map +1 -1
- package/dist/command-utils/sentry.utils.js +3 -4
- package/dist/command-utils/sentry.utils.js.map +1 -1
- package/dist/commands/agent/build-git-options.d.ts +69 -0
- package/dist/commands/agent/build-git-options.d.ts.map +1 -0
- package/dist/commands/agent/build-git-options.js +148 -0
- package/dist/commands/agent/build-git-options.js.map +1 -0
- package/dist/commands/agent/build-git-options.spec.d.ts +2 -0
- package/dist/commands/agent/build-git-options.spec.d.ts.map +1 -0
- package/dist/commands/agent/build-git-options.spec.js +226 -0
- package/dist/commands/agent/build-git-options.spec.js.map +1 -0
- package/dist/commands/agent/index.d.ts.map +1 -1
- package/dist/commands/agent/index.js +12 -3
- package/dist/commands/agent/index.js.map +1 -1
- package/dist/commands/agent/js-coverage-diff.command.d.ts +2 -0
- package/dist/commands/agent/js-coverage-diff.command.d.ts.map +1 -1
- package/dist/commands/agent/js-coverage-diff.command.js +16 -4
- package/dist/commands/agent/js-coverage-diff.command.js.map +1 -1
- package/dist/commands/agent/js-coverage.command.d.ts +13 -1
- package/dist/commands/agent/js-coverage.command.d.ts.map +1 -1
- package/dist/commands/agent/js-coverage.command.js +187 -38
- package/dist/commands/agent/js-coverage.command.js.map +1 -1
- package/dist/commands/agent/js-coverage.command.spec.d.ts +2 -0
- package/dist/commands/agent/js-coverage.command.spec.d.ts.map +1 -0
- package/dist/commands/agent/js-coverage.command.spec.js +89 -0
- package/dist/commands/agent/js-coverage.command.spec.js.map +1 -0
- package/dist/commands/agent/test-run-diffs.command.d.ts +1 -2
- package/dist/commands/agent/test-run-diffs.command.d.ts.map +1 -1
- package/dist/commands/agent/test-run-diffs.command.js +27 -34
- package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
- package/dist/commands/agent/test-run-for-commit.command.d.ts +1 -0
- package/dist/commands/agent/test-run-for-commit.command.d.ts.map +1 -1
- package/dist/commands/agent/test-run-for-commit.command.js +40 -15
- package/dist/commands/agent/test-run-for-commit.command.js.map +1 -1
- package/dist/commands/agent/trigger-test-run.command.d.ts +16 -0
- package/dist/commands/agent/trigger-test-run.command.d.ts.map +1 -0
- package/dist/commands/agent/trigger-test-run.command.js +209 -0
- package/dist/commands/agent/trigger-test-run.command.js.map +1 -0
- package/dist/commands/agent/upload-build.command.d.ts +19 -0
- package/dist/commands/agent/upload-build.command.d.ts.map +1 -0
- package/dist/commands/agent/upload-build.command.js +134 -0
- package/dist/commands/agent/upload-build.command.js.map +1 -0
- package/dist/commands/auth/__tests__/login.command.spec.js +39 -2
- package/dist/commands/auth/__tests__/login.command.spec.js.map +1 -1
- package/dist/commands/auth/login.command.d.ts +1 -0
- package/dist/commands/auth/login.command.d.ts.map +1 -1
- package/dist/commands/auth/login.command.js +40 -10
- package/dist/commands/auth/login.command.js.map +1 -1
- package/dist/commands/auth/set-project.command.d.ts.map +1 -1
- package/dist/commands/auth/set-project.command.js +10 -4
- package/dist/commands/auth/set-project.command.js.map +1 -1
- package/dist/commands/ci/deprecated-trigger-options.d.ts +19 -0
- package/dist/commands/ci/deprecated-trigger-options.d.ts.map +1 -0
- package/dist/commands/ci/deprecated-trigger-options.js +37 -0
- package/dist/commands/ci/deprecated-trigger-options.js.map +1 -0
- package/dist/commands/ci/resolve-git-options.d.ts +0 -1
- package/dist/commands/ci/resolve-git-options.d.ts.map +1 -1
- package/dist/commands/ci/resolve-git-options.js +3 -4
- package/dist/commands/ci/resolve-git-options.js.map +1 -1
- package/dist/commands/ci/run-with-uploaded-asset-chunks.command.d.ts.map +1 -1
- package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js +3 -4
- package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js.map +1 -1
- package/dist/commands/ci/trigger-test-run.core.d.ts +16 -0
- package/dist/commands/ci/trigger-test-run.core.d.ts.map +1 -0
- package/dist/commands/ci/trigger-test-run.core.js +194 -0
- package/dist/commands/ci/trigger-test-run.core.js.map +1 -0
- package/dist/commands/ci/trigger-test-run.types.d.ts +31 -0
- package/dist/commands/ci/trigger-test-run.types.d.ts.map +1 -0
- package/dist/commands/ci/trigger-test-run.types.js +6 -0
- package/dist/commands/ci/trigger-test-run.types.js.map +1 -0
- package/dist/commands/ci/upload-assets.command.d.ts +0 -1
- package/dist/commands/ci/upload-assets.command.d.ts.map +1 -1
- package/dist/commands/ci/upload-assets.command.js +16 -124
- package/dist/commands/ci/upload-assets.command.js.map +1 -1
- package/dist/commands/ci/upload-container.command.d.ts +0 -1
- package/dist/commands/ci/upload-container.command.d.ts.map +1 -1
- package/dist/commands/ci/upload-container.command.js +18 -131
- package/dist/commands/ci/upload-container.command.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +5 -3
- package/dist/main.js.map +1 -1
- package/dist/utils/__tests__/select-project.spec.js +47 -2
- package/dist/utils/__tests__/select-project.spec.js.map +1 -1
- package/dist/utils/cli-user-error.d.ts +3 -1
- package/dist/utils/cli-user-error.d.ts.map +1 -1
- package/dist/utils/cli-user-error.js +5 -14
- package/dist/utils/cli-user-error.js.map +1 -1
- package/dist/utils/resolve-test-run-from-commit.d.ts +31 -5
- package/dist/utils/resolve-test-run-from-commit.d.ts.map +1 -1
- package/dist/utils/resolve-test-run-from-commit.js +59 -19
- package/dist/utils/resolve-test-run-from-commit.js.map +1 -1
- package/dist/utils/select-project.d.ts +9 -3
- package/dist/utils/select-project.d.ts.map +1 -1
- package/dist/utils/select-project.js +30 -7
- package/dist/utils/select-project.js.map +1 -1
- package/package.json +12 -12
|
@@ -1,125 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fb27e4e7-d529-502c-9cb3-fafcfc79e243")}catch(e){}}();
|
|
3
3
|
|
|
4
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
|
-
if (k2 === undefined) k2 = k;
|
|
6
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
8
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
9
|
-
}
|
|
10
|
-
Object.defineProperty(o, k2, desc);
|
|
11
|
-
}) : (function(o, m, k, k2) {
|
|
12
|
-
if (k2 === undefined) k2 = k;
|
|
13
|
-
o[k2] = m[k];
|
|
14
|
-
}));
|
|
15
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
16
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
17
|
-
}) : function(o, v) {
|
|
18
|
-
o["default"] = v;
|
|
19
|
-
});
|
|
20
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
21
|
-
var ownKeys = function(o) {
|
|
22
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
23
|
-
var ar = [];
|
|
24
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
25
|
-
return ar;
|
|
26
|
-
};
|
|
27
|
-
return ownKeys(o);
|
|
28
|
-
};
|
|
29
|
-
return function (mod) {
|
|
30
|
-
if (mod && mod.__esModule) return mod;
|
|
31
|
-
var result = {};
|
|
32
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
33
|
-
__setModuleDefault(result, mod);
|
|
34
|
-
return result;
|
|
35
|
-
};
|
|
36
|
-
})();
|
|
37
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
5
|
exports.ciUploadContainerCommand = void 0;
|
|
39
|
-
const client_1 = require("@alwaysmeticulous/client");
|
|
40
6
|
const common_1 = require("@alwaysmeticulous/common");
|
|
41
|
-
const remote_replay_launcher_1 = require("@alwaysmeticulous/remote-replay-launcher");
|
|
42
|
-
const Sentry = __importStar(require("@sentry/node"));
|
|
43
7
|
const common_options_1 = require("../../command-utils/common-options");
|
|
8
|
+
const parse_container_env_1 = require("../../command-utils/parse-container-env");
|
|
44
9
|
const sentry_utils_1 = require("../../command-utils/sentry.utils");
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (waitForTestRunToComplete &&
|
|
52
|
-
!(0, resolve_git_options_1.hasGitContextForTestRunWait)(repoDirectory, baseSha_, gitDiffOutput_)) {
|
|
53
|
-
logger.error("--waitForTestRunToComplete is only for runs from a local branch checkout: pass --repoDirectory " +
|
|
54
|
-
"(path to your clone on the branch under test) or both --baseSha and --gitDiffOutput from that branch. " +
|
|
55
|
-
"If you only pass --commitSha you are not on a branch checkout — omit this flag.");
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
const { commitSha, baseSha, gitDiffOutput, withUncommittedChanges } = await (0, resolve_git_options_1.resolveGitOptions)({
|
|
59
|
-
commitSha: commitSha_,
|
|
60
|
-
baseSha: baseSha_,
|
|
61
|
-
gitDiffOutput: gitDiffOutput_,
|
|
62
|
-
repoDirectory,
|
|
63
|
-
});
|
|
64
|
-
if (baseSha && baseSha === commitSha && !gitDiffOutput) {
|
|
65
|
-
logger.info("Base SHA equals head SHA and no git diff output provided — nothing to test. " +
|
|
66
|
-
"If you have uncommitted changes, provide --gitDiffOutput or use --repoDirectory.");
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
logger.info(`Uploading Docker container ${localImageTag} for commit ${commitSha}`);
|
|
70
|
-
if (dryRun) {
|
|
71
|
-
logger.info(`Dry run: would push container image "${localImageTag}" and trigger a test run for commit ${commitSha}${baseSha ? ` (base: ${baseSha})` : ""}`);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
Sentry.captureMessage("Received upload container request", {
|
|
75
|
-
level: "debug",
|
|
76
|
-
extra: { commitSha, localImageTag },
|
|
77
|
-
});
|
|
78
|
-
const apiToken_ = await (0, client_1.resolveApiTokenWithOAuth)({
|
|
79
|
-
apiToken,
|
|
80
|
-
enableOAuthLogin: true,
|
|
81
|
-
});
|
|
82
|
-
const projectIdentifier = (0, resolve_project_identifier_1.resolveProjectIdentifier)(apiToken_);
|
|
83
|
-
let testRunId;
|
|
84
|
-
try {
|
|
85
|
-
const result = await (0, remote_replay_launcher_1.uploadContainer)({
|
|
86
|
-
apiToken: apiToken_,
|
|
87
|
-
localImageTag,
|
|
88
|
-
commitSha,
|
|
89
|
-
...(baseSha ? { baseSha } : {}),
|
|
90
|
-
...(gitDiffOutput ? { gitDiffOutput } : {}),
|
|
91
|
-
...(withUncommittedChanges ? { withUncommittedChanges } : {}),
|
|
92
|
-
waitForBase: waitForBase || waitForTestRunToComplete,
|
|
93
|
-
containerPort,
|
|
94
|
-
containerEnv,
|
|
95
|
-
containerHealthCheckEndpoint,
|
|
96
|
-
...projectIdentifier,
|
|
97
|
-
});
|
|
98
|
-
testRunId = result.testRun?.id ?? null;
|
|
99
|
-
if (!result.testRun) {
|
|
100
|
-
throw new Error(`${result.message ?? "Container upload complete but test run not created"}`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
if ((0, out_of_date_client_error_1.isOutOfDateClientError)(error)) {
|
|
105
|
-
throw new out_of_date_client_error_1.OutOfDateCLIError();
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
throw error;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
if (!waitForTestRunToComplete || !testRunId) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
const client = (0, client_1.createClient)({ apiToken: apiToken_ });
|
|
115
|
-
logger.info(`Waiting for test run ${testRunId} to complete...`);
|
|
116
|
-
let completedTestRun = await (0, client_1.getTestRun)({ client, testRunId });
|
|
117
|
-
while (client_1.IN_PROGRESS_TEST_RUN_STATUS.includes(completedTestRun.status)) {
|
|
118
|
-
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
119
|
-
completedTestRun = await (0, client_1.getTestRun)({ client, testRunId });
|
|
120
|
-
logger.info(`Test run status: ${completedTestRun.status}`);
|
|
121
|
-
}
|
|
122
|
-
logger.info(`Test run ${testRunId} finished with status: ${completedTestRun.status}`);
|
|
10
|
+
const trigger_test_run_core_1 = require("./trigger-test-run.core");
|
|
11
|
+
const deprecated_trigger_options_1 = require("./deprecated-trigger-options");
|
|
12
|
+
const handler = async (options) => {
|
|
13
|
+
(0, common_1.initLogger)();
|
|
14
|
+
(0, deprecated_trigger_options_1.warnIfDeprecatedTriggerOptionsUsed)(options);
|
|
15
|
+
await (0, trigger_test_run_core_1.triggerTestRun)(options);
|
|
123
16
|
};
|
|
124
17
|
exports.ciUploadContainerCommand = {
|
|
125
18
|
command: "upload-container",
|
|
@@ -129,17 +22,18 @@ exports.ciUploadContainerCommand = {
|
|
|
129
22
|
commitSha: common_options_1.OPTIONS.commitSha,
|
|
130
23
|
baseSha: {
|
|
131
24
|
string: true,
|
|
132
|
-
|
|
25
|
+
deprecated: true,
|
|
26
|
+
description: `The base commit SHA to compare against. ${deprecated_trigger_options_1.DEPRECATED_TRIGGER_OPTION_DESCRIPTION}`,
|
|
133
27
|
},
|
|
134
28
|
gitDiffOutput: {
|
|
135
29
|
string: true,
|
|
136
|
-
|
|
30
|
+
deprecated: true,
|
|
31
|
+
description: `Raw git diff output between the base and head commits. Requires --baseSha. ${deprecated_trigger_options_1.DEPRECATED_TRIGGER_OPTION_DESCRIPTION}`,
|
|
137
32
|
},
|
|
138
33
|
repoDirectory: {
|
|
139
34
|
string: true,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
"Cannot be combined with --commitSha, --baseSha, or --gitDiffOutput.",
|
|
35
|
+
deprecated: true,
|
|
36
|
+
description: `The path to a git repository, used to infer --commitSha, --baseSha, and --gitDiffOutput. ${deprecated_trigger_options_1.DEPRECATED_TRIGGER_OPTION_DESCRIPTION}`,
|
|
143
37
|
},
|
|
144
38
|
localImageTag: {
|
|
145
39
|
demandOption: true,
|
|
@@ -154,8 +48,8 @@ exports.ciUploadContainerCommand = {
|
|
|
154
48
|
waitForTestRunToComplete: {
|
|
155
49
|
boolean: true,
|
|
156
50
|
default: false,
|
|
157
|
-
|
|
158
|
-
|
|
51
|
+
deprecated: true,
|
|
52
|
+
description: `If true, block until the triggered test run finishes. ${deprecated_trigger_options_1.DEPRECATED_TRIGGER_OPTION_DESCRIPTION}`,
|
|
159
53
|
},
|
|
160
54
|
containerPort: {
|
|
161
55
|
number: true,
|
|
@@ -163,14 +57,7 @@ exports.ciUploadContainerCommand = {
|
|
|
163
57
|
},
|
|
164
58
|
containerEnv: {
|
|
165
59
|
array: true,
|
|
166
|
-
coerce:
|
|
167
|
-
const [name, ...rest] = v.split("=");
|
|
168
|
-
const envValue = rest.join("=");
|
|
169
|
-
if (!name || !envValue) {
|
|
170
|
-
throw new Error(`Invalid environment variable: ${v}`);
|
|
171
|
-
}
|
|
172
|
-
return { name, value: envValue };
|
|
173
|
-
}),
|
|
60
|
+
coerce: parse_container_env_1.parseContainerEnv,
|
|
174
61
|
description: "The environment variables to set in the container.",
|
|
175
62
|
},
|
|
176
63
|
containerHealthCheckEndpoint: {
|
|
@@ -181,4 +68,4 @@ exports.ciUploadContainerCommand = {
|
|
|
181
68
|
handler: (0, sentry_utils_1.wrapHandler)(handler),
|
|
182
69
|
};
|
|
183
70
|
//# sourceMappingURL=upload-container.command.js.map
|
|
184
|
-
//# debugId=
|
|
71
|
+
//# debugId=fb27e4e7-d529-502c-9cb3-fafcfc79e243
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-container.command.js","sources":["../../../src/commands/ci/upload-container.command.ts"],"sourceRoot":"","names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upload-container.command.js","sources":["../../../src/commands/ci/upload-container.command.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AACA,qDAAsD;AAEtD,uEAA6D;AAC7D,iFAA4E;AAC5E,mEAA+D;AAC/D,mEAAyD;AACzD,6EAGsC;AAgBtC,MAAM,OAAO,GAAG,KAAK,EAAE,OAAgB,EAAiB,EAAE;IACxD,IAAA,mBAAU,GAAE,CAAC;IACb,IAAA,+DAAkC,EAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAA,sCAAc,EAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC;AAEW,QAAA,wBAAwB,GAAoC;IACvE,OAAO,EAAE,kBAAkB;IAC3B,QAAQ,EACN,2EAA2E;IAC7E,OAAO,EAAE;QACP,QAAQ,EAAE,wBAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,wBAAO,CAAC,SAAS;QAC5B,OAAO,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,2CAA2C,kEAAqC,EAAE;SAChG;QACD,aAAa,EAAE;YACb,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,8EAA8E,kEAAqC,EAAE;SACnI;QACD,aAAa,EAAE;YACb,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,4FAA4F,kEAAqC,EAAE;SACjJ;QACD,aAAa,EAAE;YACb,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,0EAA0E;SAC7E;QACD,WAAW,EAAE;YACX,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,WAAW,EACT,wGAAwG;SAC3G;QACD,wBAAwB,EAAE;YACxB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,yDAAyD,kEAAqC,EAAE;SAC9G;QACD,aAAa,EAAE;YACb,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,sCAAsC;SACpD;QACD,YAAY,EAAE;YACZ,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,uCAAiB;YACzB,WAAW,EAAE,oDAAoD;SAClE;QACD,4BAA4B,EAAE;YAC5B,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,gFAAgF;SACnF;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC","debugId":"fb27e4e7-d529-502c-9cb3-fafcfc79e243"}
|
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,IAAI,QAAa,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,IAAI,QAAa,OAAO,CAAC,IAAI,CAyEzC,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f8872d18-9d77-599e-805f-5c2c0850a09c")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -79,7 +79,9 @@ const main = async () => {
|
|
|
79
79
|
},
|
|
80
80
|
], true)
|
|
81
81
|
.middleware([
|
|
82
|
-
|
|
82
|
+
// Explicit --logLevel wins; otherwise --verbose=false (the default for
|
|
83
|
+
// agent commands) quietens progress logs so only essential output remains.
|
|
84
|
+
(argv) => (0, common_1.setLogLevel)(argv.logLevel ?? (argv.verbose === false ? "warn" : undefined)),
|
|
83
85
|
(argv) => handleDataDir(argv.dataDir),
|
|
84
86
|
(argv) => (0, sentry_utils_1.setOptions)(argv),
|
|
85
87
|
]).argv;
|
|
@@ -87,4 +89,4 @@ const main = async () => {
|
|
|
87
89
|
exports.main = main;
|
|
88
90
|
void (0, exports.main)();
|
|
89
91
|
//# sourceMappingURL=main.js.map
|
|
90
|
-
//# debugId=
|
|
92
|
+
//# debugId=f8872d18-9d77-599e-805f-5c2c0850a09c
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/main.ts"],"sourceRoot":"","names":[],"mappings":";;;;;;;;AAAA,+BAAuC;AACvC,qDAKkC;AAClC,qDAAsD;AACtD,kDAA0B;AAC1B,+DAA0D;AAC1D,kDAAsD;AACtD,iDAAoD;AACpD,+CAAgD;AAChD,kDAAsD;AACtD,sEAAkE;AAClE,qDAA4D;AAC5D,4CAAgD;AAChD,oDAA0D;AAC1D,mDAAwD;AACxD,8DAA0D;AAC1D,8DAA0D;AAE1D,MAAM,aAAa,GAAG,CAAC,OAAkC,EAAQ,EAAE;IACjE,IAAA,kCAAyB,EAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC;AAEK,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IAC5C,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,eAAe,GAAG,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,MAAM,IAAA,6BAAoB,EAAC,eAAe,CAAC,CAAC;IACtE,MAAM,IAAA,mBAAU,EAAC,iBAAiB,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAG,eAAK;SACd,UAAU,CAAC,YAAY,CAAC;SACxB,KAAK,CACJ;;qBAEe,CAChB;SACA,OAAO,CAAC,oBAAY,CAAC;SACrB,OAAO,CAAC,mBAAW,CAAC;SACpB,OAAO,CAAC,iBAAS,CAAC;SAClB,OAAO,CAAC,oBAAY,CAAC;SACrB,OAAO,CAAC,uBAAe,CAAC;SACxB,OAAO,CAAC,oBAAY,CAAC;SACrB,OAAO,CAAC,sBAAc,CAAC;SACvB,OAAO,CAAC,qBAAa,CAAC;SACtB,OAAO,CAAC,8BAAa,CAAC;SACtB,OAAO,CAAC,8BAAa,CAAC,CAAC;IAE1B,KAAK,MAAM,KAAK,IAAI,sCAAiB,EAAE,CAAC;QACtC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,GAAG;SACN,IAAI,EAAE;SACN,MAAM,EAAE;SACR,aAAa,EAAE;SACf,MAAM,CAAC;QACN,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;YAC9D,WAAW,EAAE,WAAW;SACzB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,wDAAwD;SACtE;QACD,OAAO,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,gEAAgE;SACnE;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,WAAW,EACT,4DAA4D;YAC9D,OAAO,EAAE,KAAK;SACf;KACF,CAAC;SACD,UAAU,CACT;QACE,CAAC,IAAI,EAAE,EAAE;YACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,EACD,IAAI,CACL;SACA,UAAU,CAAC;QACV,CAAC,IAAI,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/main.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"f8872d18-9d77-599e-805f-5c2c0850a09c"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="7cf66ee0-81c7-5a43-b56d-ed1b13bd0d98")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
const vitest_1 = require("vitest");
|
|
@@ -82,6 +82,51 @@ const fakeClient = {};
|
|
|
82
82
|
mocks.getOAuthProjects.mockResolvedValue([]);
|
|
83
83
|
await (0, vitest_1.expect)((0, select_project_1.selectAndStoreProject)({ client: fakeClient, logger: fakeLogger })).rejects.toBeInstanceOf(cli_user_error_1.CliUserError);
|
|
84
84
|
});
|
|
85
|
+
(0, vitest_1.it)("throws without prompting when several projects exist and prompting is disabled", async () => {
|
|
86
|
+
mocks.getOAuthProjects.mockResolvedValue([
|
|
87
|
+
project("OrgA", "App1", "id-1"),
|
|
88
|
+
project("OrgB", "App2", "id-2"),
|
|
89
|
+
]);
|
|
90
|
+
const caught = await (0, select_project_1.selectAndStoreProject)({
|
|
91
|
+
client: fakeClient,
|
|
92
|
+
logger: fakeLogger,
|
|
93
|
+
allowInteractivePrompt: false,
|
|
94
|
+
}).catch((error) => error);
|
|
95
|
+
(0, vitest_1.expect)(caught).toBeInstanceOf(cli_user_error_1.CliUserError);
|
|
96
|
+
(0, vitest_1.expect)(caught.severity).toBe("warn");
|
|
97
|
+
(0, vitest_1.expect)(caught.exitCode).toBe(1);
|
|
98
|
+
(0, vitest_1.expect)(mocks.setStoredProject).not.toHaveBeenCalled();
|
|
99
|
+
});
|
|
100
|
+
(0, vitest_1.it)("keeps the fallback project when it is still accessible and prompting is disabled", async () => {
|
|
101
|
+
mocks.getOAuthProjects.mockResolvedValue([
|
|
102
|
+
project("OrgA", "App1", "id-1"),
|
|
103
|
+
project("OrgB", "App2", "id-2"),
|
|
104
|
+
]);
|
|
105
|
+
const result = await (0, select_project_1.selectAndStoreProject)({
|
|
106
|
+
client: fakeClient,
|
|
107
|
+
logger: fakeLogger,
|
|
108
|
+
allowInteractivePrompt: false,
|
|
109
|
+
fallbackToProject: "OrgB/App2",
|
|
110
|
+
});
|
|
111
|
+
(0, vitest_1.expect)(result).toBe("OrgB/App2");
|
|
112
|
+
(0, vitest_1.expect)(mocks.setStoredProject).toHaveBeenCalledWith({
|
|
113
|
+
project: "OrgB/App2",
|
|
114
|
+
projectId: "id-2",
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
(0, vitest_1.it)("throws when the fallback project is no longer accessible", async () => {
|
|
118
|
+
mocks.getOAuthProjects.mockResolvedValue([
|
|
119
|
+
project("OrgA", "App1", "id-1"),
|
|
120
|
+
project("OrgB", "App2", "id-2"),
|
|
121
|
+
]);
|
|
122
|
+
await (0, vitest_1.expect)((0, select_project_1.selectAndStoreProject)({
|
|
123
|
+
client: fakeClient,
|
|
124
|
+
logger: fakeLogger,
|
|
125
|
+
allowInteractivePrompt: false,
|
|
126
|
+
fallbackToProject: "OrgC/Gone",
|
|
127
|
+
})).rejects.toBeInstanceOf(cli_user_error_1.CliUserError);
|
|
128
|
+
(0, vitest_1.expect)(mocks.setStoredProject).not.toHaveBeenCalled();
|
|
129
|
+
});
|
|
85
130
|
});
|
|
86
131
|
//# sourceMappingURL=select-project.spec.js.map
|
|
87
|
-
//# debugId=
|
|
132
|
+
//# debugId=7cf66ee0-81c7-5a43-b56d-ed1b13bd0d98
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-project.spec.js","sources":["../../../src/utils/__tests__/select-project.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"
|
|
1
|
+
{"version":3,"file":"select-project.spec.js","sources":["../../../src/utils/__tests__/select-project.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"7cf66ee0-81c7-5a43-b56d-ed1b13bd0d98"}
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
* happens in one place (the top-level handler) and tests can assert on
|
|
10
10
|
* thrown behavior rather than process-level side effects.
|
|
11
11
|
*/
|
|
12
|
+
export type CliUserErrorSeverity = "error" | "warn";
|
|
12
13
|
export declare class CliUserError extends Error {
|
|
13
14
|
readonly exitCode: number;
|
|
14
|
-
|
|
15
|
+
readonly severity: CliUserErrorSeverity;
|
|
16
|
+
constructor(message: string, exitCode?: number, severity?: CliUserErrorSeverity);
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=cli-user-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-user-error.d.ts","sourceRoot":"","sources":["../../src/utils/cli-user-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-user-error.d.ts","sourceRoot":"","sources":["../../src/utils/cli-user-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;gBAGtC,OAAO,EAAE,MAAM,EACf,QAAQ,SAAI,EACZ,QAAQ,GAAE,oBAA8B;CAO3C"}
|
|
@@ -1,27 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e721f599-90d6-5a66-8b3a-0c8e243f28ee")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.CliUserError = void 0;
|
|
6
|
-
/**
|
|
7
|
-
* Thrown by command helpers (e.g. `resolveProjectIdentifier`,
|
|
8
|
-
* `handleAuthFailure`) when the command cannot proceed for a reason that
|
|
9
|
-
* is the user's responsibility — not a bug. `wrapHandler` prints the
|
|
10
|
-
* message and exits with the supplied code, without the generic
|
|
11
|
-
* `--help` tip or a stack trace.
|
|
12
|
-
*
|
|
13
|
-
* Use this instead of `process.exit(1)` inside utilities so that exit
|
|
14
|
-
* happens in one place (the top-level handler) and tests can assert on
|
|
15
|
-
* thrown behavior rather than process-level side effects.
|
|
16
|
-
*/
|
|
17
6
|
class CliUserError extends Error {
|
|
18
7
|
exitCode;
|
|
19
|
-
|
|
8
|
+
severity;
|
|
9
|
+
constructor(message, exitCode = 1, severity = "error") {
|
|
20
10
|
super(message);
|
|
21
11
|
this.name = "CliUserError";
|
|
22
12
|
this.exitCode = exitCode;
|
|
13
|
+
this.severity = severity;
|
|
23
14
|
}
|
|
24
15
|
}
|
|
25
16
|
exports.CliUserError = CliUserError;
|
|
26
17
|
//# sourceMappingURL=cli-user-error.js.map
|
|
27
|
-
//# debugId=
|
|
18
|
+
//# debugId=e721f599-90d6-5a66-8b3a-0c8e243f28ee
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-user-error.js","sources":["../../src/utils/cli-user-error.ts"],"sourceRoot":"","names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"cli-user-error.js","sources":["../../src/utils/cli-user-error.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAaA,MAAa,YAAa,SAAQ,KAAK;IAC5B,QAAQ,CAAS;IACjB,QAAQ,CAAuB;IAExC,YACE,OAAe,EACf,QAAQ,GAAG,CAAC,EACZ,WAAiC,OAAO;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAdD,oCAcC","debugId":"e721f599-90d6-5a66-8b3a-0c8e243f28ee"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { TestRunStatus } from "@alwaysmeticulous/api";
|
|
2
2
|
import type { MeticulousClient } from "@alwaysmeticulous/client";
|
|
3
|
+
/**
|
|
4
|
+
* Logs which commit a by-commit test-run lookup resolved to, with consistent
|
|
5
|
+
* wording across the agent commands. The lookup is by commit, so uncommitted
|
|
6
|
+
* local changes aren't reflected: when the tree is dirty it logs `commitSha
|
|
7
|
+
* (ignoring local changes)` unconditionally (not just under `--verbose`) so the
|
|
8
|
+
* caveat is never missed — there's no ephemeral-commit capture here, unlike
|
|
9
|
+
* `upload-build`. The clean and explicit-`--commitSha` cases are `--verbose`-only.
|
|
10
|
+
*/
|
|
11
|
+
export declare const logResolvedCommitSha: (commitSha: string | undefined, resolvedSha: string) => Promise<void>;
|
|
3
12
|
export interface ResolvedTestRun {
|
|
4
13
|
testRunId: string;
|
|
5
14
|
status: TestRunStatus;
|
|
@@ -32,6 +41,9 @@ export declare const assertTestRunComplete: (testRunId: string, status: TestRunS
|
|
|
32
41
|
* Resolves the latest test run (including one in progress) from a commit (an
|
|
33
42
|
* explicit `commitSha`, or the local checkout's HEAD when omitted), throwing a
|
|
34
43
|
* `CliUserError` when the commit can't be determined or no run matches it.
|
|
44
|
+
*
|
|
45
|
+
* Logs the resolved commit (see {@link logResolvedCommitSha}) and the test run
|
|
46
|
+
* id (under `--verbose`).
|
|
35
47
|
*/
|
|
36
48
|
export declare const resolveTestRunForCommitOrThrow: (client: MeticulousClient, apiToken: string, commitSha: string | undefined) => Promise<ResolvedTestRun>;
|
|
37
49
|
/**
|
|
@@ -42,10 +54,24 @@ export declare const resolveTestRunForCommitOrThrow: (client: MeticulousClient,
|
|
|
42
54
|
export declare const tryResolveTestRunForCommit: (client: MeticulousClient, apiToken: string, commitSha: string | undefined) => Promise<ResolvedTestRun | null>;
|
|
43
55
|
/**
|
|
44
56
|
* Polls a (possibly in-progress) test run until it reaches a terminal status,
|
|
45
|
-
* logging
|
|
46
|
-
*
|
|
47
|
-
* if the run
|
|
48
|
-
*
|
|
57
|
+
* logging a single "Waiting for test run X to complete..." line when it starts
|
|
58
|
+
* waiting (no per-poll output — per-poll lines are noisy context for agents).
|
|
59
|
+
* Throws a `CliUserError` if the run doesn't reach a terminal status within
|
|
60
|
+
* `POLL_TIMEOUT_MS`, or — unless `throwOnFailure: false` — if it finishes
|
|
61
|
+
* unsuccessfully (`ExecutionError`/`Aborted`). Returns the final status.
|
|
62
|
+
*/
|
|
63
|
+
export declare const awaitTestRunCompletion: (client: MeticulousClient, testRunId: string, { throwOnFailure }?: {
|
|
64
|
+
throwOnFailure?: boolean;
|
|
65
|
+
}) => Promise<TestRunStatus>;
|
|
66
|
+
/**
|
|
67
|
+
* Ensures a resolved run is finished before its results are used. By default
|
|
68
|
+
* blocks until completion (a single "Waiting for test run X to complete..."
|
|
69
|
+
* line); with `dontWait`, reports "Test run X is not complete (status: Y)." and
|
|
70
|
+
* returns `null` so the caller can stop without waiting. Returns the terminal
|
|
71
|
+
* status, or `null` only when `dontWait` and the run is still in progress.
|
|
49
72
|
*/
|
|
50
|
-
export declare const
|
|
73
|
+
export declare const ensureTestRunFinished: (client: MeticulousClient, testRunId: string, status: TestRunStatus, { dontWait, throwOnFailure, }: {
|
|
74
|
+
dontWait: boolean;
|
|
75
|
+
throwOnFailure?: boolean;
|
|
76
|
+
}) => Promise<TestRunStatus | null>;
|
|
51
77
|
//# sourceMappingURL=resolve-test-run-from-commit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-test-run-from-commit.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve-test-run-from-commit.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAqBjE;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,cACpB,MAAM,GAAG,SAAS,eAChB,MAAM,KAClB,OAAO,CAAC,IAAI,CAQd,CAAC;AAUF,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACvB;AAED,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,WAAY,aAAa,KAAG,OACd,CAAC;AAS/C,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,WAAY,aAAa,KAAG,OACf,CAAC;AAK5C,2EAA2E;AAC3E,eAAO,MAAM,eAAe,WAAY,aAAa,KAAG,OACf,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,WAAY,aAAa,KAAG,OACnC,CAAC;AAEvB;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,cACrB,MAAM,UACT,aAAa,mBACO;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,KAClD,IAgBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,8BAA8B,WACjC,gBAAgB,YACd,MAAM,aACL,MAAM,GAAG,SAAS,KAC5B,OAAO,CAAC,eAAe,CAkBzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,WAC7B,gBAAgB,YACd,MAAM,aACL,MAAM,GAAG,SAAS,KAC5B,OAAO,CAAC,eAAe,GAAG,IAAI,CAoBhC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,WACzB,gBAAgB,aACb,MAAM,uBACU;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,KACtD,OAAO,CAAC,aAAa,CAsBvB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,WACxB,gBAAgB,aACb,MAAM,UACT,aAAa,iCAIlB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,KACjD,OAAO,CAAC,aAAa,GAAG,IAAI,CAM9B,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b1a6100d-92ed-555c-b90f-c585949945a3")}catch(e){}}();
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.awaitTestRunCompletion = exports.tryResolveTestRunForCommit = exports.resolveTestRunForCommitOrThrow = exports.assertTestRunComplete = exports.isTestRunPartial = exports.isTestRunFailed = exports.isTestRunComplete = exports.isTestRunInProgress = void 0;
|
|
5
|
+
exports.ensureTestRunFinished = exports.awaitTestRunCompletion = exports.tryResolveTestRunForCommit = exports.resolveTestRunForCommitOrThrow = exports.assertTestRunComplete = exports.isTestRunPartial = exports.isTestRunFailed = exports.isTestRunComplete = exports.isTestRunInProgress = exports.logResolvedCommitSha = void 0;
|
|
6
6
|
const client_1 = require("@alwaysmeticulous/client");
|
|
7
7
|
const common_1 = require("@alwaysmeticulous/common");
|
|
8
8
|
const cli_user_error_1 = require("./cli-user-error");
|
|
@@ -10,7 +10,32 @@ const resolve_project_identifier_1 = require("./resolve-project-identifier");
|
|
|
10
10
|
const POLL_INTERVAL_MS = 10_000;
|
|
11
11
|
/** Give up waiting for a run after this long, rather than polling forever. */
|
|
12
12
|
const POLL_TIMEOUT_MS = 10 * 60_000;
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Logs which commit a by-commit test-run lookup resolved to, with consistent
|
|
15
|
+
* wording across the agent commands. The lookup is by commit, so uncommitted
|
|
16
|
+
* local changes aren't reflected: when the tree is dirty it logs `commitSha
|
|
17
|
+
* (ignoring local changes)` unconditionally (not just under `--verbose`) so the
|
|
18
|
+
* caveat is never missed — there's no ephemeral-commit capture here, unlike
|
|
19
|
+
* `upload-build`. The clean and explicit-`--commitSha` cases are `--verbose`-only.
|
|
20
|
+
*/
|
|
21
|
+
const logResolvedCommitSha = async (commitSha, resolvedSha) => {
|
|
22
|
+
if (commitSha != null) {
|
|
23
|
+
(0, common_1.logProgress)(`commitSha (provided): ${resolvedSha}`);
|
|
24
|
+
}
|
|
25
|
+
else if (await hasLocalChanges()) {
|
|
26
|
+
(0, common_1.logNotice)(`commitSha (ignoring local changes): ${resolvedSha}`);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
(0, common_1.logProgress)(`commitSha (local): ${resolvedSha}`);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.logResolvedCommitSha = logResolvedCommitSha;
|
|
33
|
+
/**
|
|
34
|
+
* True when the working tree differs from HEAD in any way the by-commit lookup
|
|
35
|
+
* won't reflect — tracked modifications/staged changes *or* untracked files.
|
|
36
|
+
* (`hasUncommittedChanges` alone ignores untracked files.)
|
|
37
|
+
*/
|
|
38
|
+
const hasLocalChanges = async () => (await (0, common_1.hasUncommittedChanges)()) || (await (0, common_1.getUntrackedFiles)()).length > 0;
|
|
14
39
|
/** Whether a status means the run is still running (not yet usable). */
|
|
15
40
|
const isTestRunInProgress = (status) => client_1.IN_PROGRESS_TEST_RUN_STATUS.includes(status);
|
|
16
41
|
exports.isTestRunInProgress = isTestRunInProgress;
|
|
@@ -60,12 +85,16 @@ exports.assertTestRunComplete = assertTestRunComplete;
|
|
|
60
85
|
* Resolves the latest test run (including one in progress) from a commit (an
|
|
61
86
|
* explicit `commitSha`, or the local checkout's HEAD when omitted), throwing a
|
|
62
87
|
* `CliUserError` when the commit can't be determined or no run matches it.
|
|
88
|
+
*
|
|
89
|
+
* Logs the resolved commit (see {@link logResolvedCommitSha}) and the test run
|
|
90
|
+
* id (under `--verbose`).
|
|
63
91
|
*/
|
|
64
92
|
const resolveTestRunForCommitOrThrow = async (client, apiToken, commitSha) => {
|
|
65
93
|
const sha = await (0, common_1.getCommitSha)(commitSha);
|
|
66
94
|
if (!sha) {
|
|
67
95
|
throw new cli_user_error_1.CliUserError("Could not determine a commit SHA. Pass --commitSha or --testRunId, or run inside a git repository.");
|
|
68
96
|
}
|
|
97
|
+
await (0, exports.logResolvedCommitSha)(commitSha, sha);
|
|
69
98
|
const { projectId } = (0, resolve_project_identifier_1.resolveProjectIdentifier)(apiToken);
|
|
70
99
|
const { testRunId, status } = await (0, client_1.getTestRunForCommit)(client, sha, {
|
|
71
100
|
projectId,
|
|
@@ -73,12 +102,7 @@ const resolveTestRunForCommitOrThrow = async (client, apiToken, commitSha) => {
|
|
|
73
102
|
if (testRunId == null || status == null) {
|
|
74
103
|
throw new cli_user_error_1.CliUserError(`No test run found for commit ${sha}.`);
|
|
75
104
|
}
|
|
76
|
-
|
|
77
|
-
// "Success"/"Failure" just indicate whether diffs were found (and "Failure"
|
|
78
|
-
// reads alarmingly), whereas in-progress/Aborted/ExecutionError/Partial are
|
|
79
|
-
// worth surfacing — those usually mean we exit here or the run is unreliable.
|
|
80
|
-
const statusSuffix = status === "Success" || status === "Failure" ? "" : ` (status: ${status})`;
|
|
81
|
-
log(`Resolved test run ${testRunId} for commit ${sha}${statusSuffix}.`);
|
|
105
|
+
(0, common_1.logProgress)(`Resolved test run id: ${testRunId}`);
|
|
82
106
|
return { testRunId, status };
|
|
83
107
|
};
|
|
84
108
|
exports.resolveTestRunForCommitOrThrow = resolveTestRunForCommitOrThrow;
|
|
@@ -112,30 +136,46 @@ const tryResolveTestRunForCommit = async (client, apiToken, commitSha) => {
|
|
|
112
136
|
exports.tryResolveTestRunForCommit = tryResolveTestRunForCommit;
|
|
113
137
|
/**
|
|
114
138
|
* Polls a (possibly in-progress) test run until it reaches a terminal status,
|
|
115
|
-
* logging
|
|
116
|
-
*
|
|
117
|
-
* if the run
|
|
118
|
-
*
|
|
139
|
+
* logging a single "Waiting for test run X to complete..." line when it starts
|
|
140
|
+
* waiting (no per-poll output — per-poll lines are noisy context for agents).
|
|
141
|
+
* Throws a `CliUserError` if the run doesn't reach a terminal status within
|
|
142
|
+
* `POLL_TIMEOUT_MS`, or — unless `throwOnFailure: false` — if it finishes
|
|
143
|
+
* unsuccessfully (`ExecutionError`/`Aborted`). Returns the final status.
|
|
119
144
|
*/
|
|
120
|
-
const awaitTestRunCompletion = async (client, testRunId) => {
|
|
145
|
+
const awaitTestRunCompletion = async (client, testRunId, { throwOnFailure = true } = {}) => {
|
|
121
146
|
let testRun = await (0, client_1.getTestRun)({ client, testRunId });
|
|
122
147
|
if ((0, exports.isTestRunInProgress)(testRun.status)) {
|
|
123
|
-
|
|
148
|
+
(0, common_1.logProgress)(`Waiting for test run ${testRunId} to complete...`);
|
|
124
149
|
}
|
|
125
150
|
const deadline = performance.now() + POLL_TIMEOUT_MS;
|
|
126
151
|
while ((0, exports.isTestRunInProgress)(testRun.status)) {
|
|
127
152
|
if (performance.now() >= deadline) {
|
|
128
|
-
throw new cli_user_error_1.CliUserError(`Test run ${testRunId}
|
|
129
|
-
"
|
|
153
|
+
throw new cli_user_error_1.CliUserError(`Test run ${testRunId} has not completed after 10 minutes (status: ${testRun.status}). ` +
|
|
154
|
+
"It may still be running — check back later, or re-run with --dontWaitForTestRunToComplete to return immediately.");
|
|
130
155
|
}
|
|
131
156
|
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
132
157
|
testRun = await (0, client_1.getTestRun)({ client, testRunId });
|
|
133
158
|
}
|
|
134
|
-
if ((0, exports.isTestRunFailed)(testRun.status)) {
|
|
159
|
+
if (throwOnFailure && (0, exports.isTestRunFailed)(testRun.status)) {
|
|
135
160
|
throw new cli_user_error_1.CliUserError(`Test run ${testRunId} finished unsuccessfully (status: ${testRun.status}).`);
|
|
136
161
|
}
|
|
137
162
|
return testRun.status;
|
|
138
163
|
};
|
|
139
164
|
exports.awaitTestRunCompletion = awaitTestRunCompletion;
|
|
165
|
+
/**
|
|
166
|
+
* Ensures a resolved run is finished before its results are used. By default
|
|
167
|
+
* blocks until completion (a single "Waiting for test run X to complete..."
|
|
168
|
+
* line); with `dontWait`, reports "Test run X is not complete (status: Y)." and
|
|
169
|
+
* returns `null` so the caller can stop without waiting. Returns the terminal
|
|
170
|
+
* status, or `null` only when `dontWait` and the run is still in progress.
|
|
171
|
+
*/
|
|
172
|
+
const ensureTestRunFinished = async (client, testRunId, status, { dontWait, throwOnFailure = true, }) => {
|
|
173
|
+
if (dontWait && (0, exports.isTestRunInProgress)(status)) {
|
|
174
|
+
(0, common_1.logNotice)(`Test run ${testRunId} is not complete (status: ${status}).`);
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
return (0, exports.awaitTestRunCompletion)(client, testRunId, { throwOnFailure });
|
|
178
|
+
};
|
|
179
|
+
exports.ensureTestRunFinished = ensureTestRunFinished;
|
|
140
180
|
//# sourceMappingURL=resolve-test-run-from-commit.js.map
|
|
141
|
-
//# debugId=
|
|
181
|
+
//# debugId=b1a6100d-92ed-555c-b90f-c585949945a3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-test-run-from-commit.js","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAEA,qDAIkC;AAClC,
|
|
1
|
+
{"version":3,"file":"resolve-test-run-from-commit.js","sources":["../../src/utils/resolve-test-run-from-commit.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"b1a6100d-92ed-555c-b90f-c585949945a3"}
|