@teambit/ripple 0.0.0-2dc4d0fc855fbdea173ce527316b2e853f871be6
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/index.d.ts +4 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1774890570480.js +7 -0
- package/dist/ripple-errors.cmd.d.ts +35 -0
- package/dist/ripple-errors.cmd.js +178 -0
- package/dist/ripple-errors.cmd.js.map +1 -0
- package/dist/ripple-list.cmd.d.ts +33 -0
- package/dist/ripple-list.cmd.js +199 -0
- package/dist/ripple-list.cmd.js.map +1 -0
- package/dist/ripple-log.cmd.d.ts +39 -0
- package/dist/ripple-log.cmd.js +183 -0
- package/dist/ripple-log.cmd.js.map +1 -0
- package/dist/ripple-retry.cmd.d.ts +29 -0
- package/dist/ripple-retry.cmd.js +89 -0
- package/dist/ripple-retry.cmd.js.map +1 -0
- package/dist/ripple-stop.cmd.d.ts +29 -0
- package/dist/ripple-stop.cmd.js +80 -0
- package/dist/ripple-stop.cmd.js.map +1 -0
- package/dist/ripple.aspect.d.ts +3 -0
- package/dist/ripple.aspect.js +9 -0
- package/dist/ripple.aspect.js.map +1 -0
- package/dist/ripple.cmd.d.ts +15 -0
- package/dist/ripple.cmd.js +31 -0
- package/dist/ripple.cmd.js.map +1 -0
- package/dist/ripple.main.runtime.d.ts +158 -0
- package/dist/ripple.main.runtime.js +473 -0
- package/dist/ripple.main.runtime.js.map +1 -0
- package/index.ts +5 -0
- package/package.json +29 -0
- package/ripple-errors.cmd.ts +184 -0
- package/ripple-list.cmd.ts +210 -0
- package/ripple-log.cmd.ts +167 -0
- package/ripple-retry.cmd.ts +70 -0
- package/ripple-stop.cmd.ts +64 -0
- package/ripple.aspect.ts +7 -0
- package/ripple.cmd.ts +17 -0
- package/ripple.main.runtime.ts +514 -0
- package/types/asset.d.ts +29 -0
- package/types/style.d.ts +42 -0
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RippleAspect = void 0;
|
|
4
|
+
const ripple_aspect_1 = require("./ripple.aspect");
|
|
5
|
+
Object.defineProperty(exports, "RippleAspect", { enumerable: true, get: function () { return ripple_aspect_1.RippleAspect; } });
|
|
6
|
+
exports.default = ripple_aspect_1.RippleAspect;
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAGtC,6FAHA,4BAAY,OAGA;AADrB,kBAAe,4BAAY,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Command, CommandOptions } from '@teambit/cli';
|
|
2
|
+
import type { RippleMain, CiGraphNode } from './ripple.main.runtime';
|
|
3
|
+
export declare class RippleErrorsCmd implements Command {
|
|
4
|
+
private ripple;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
skipWorkspace: boolean;
|
|
8
|
+
remoteOp: boolean;
|
|
9
|
+
alias: string;
|
|
10
|
+
options: CommandOptions;
|
|
11
|
+
arguments: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}[];
|
|
15
|
+
constructor(ripple: RippleMain);
|
|
16
|
+
report([jobId]: [string], flags: {
|
|
17
|
+
lane?: string;
|
|
18
|
+
log?: boolean;
|
|
19
|
+
}): Promise<string>;
|
|
20
|
+
json([jobId]: [string], flags: {
|
|
21
|
+
lane?: string;
|
|
22
|
+
log?: boolean;
|
|
23
|
+
}): Promise<{
|
|
24
|
+
error: string;
|
|
25
|
+
job: any;
|
|
26
|
+
ciNodes: any[];
|
|
27
|
+
containerLogs: {};
|
|
28
|
+
} | {
|
|
29
|
+
job: any;
|
|
30
|
+
ciNodes: CiGraphNode[];
|
|
31
|
+
containerLogs: Record<string, string[]>;
|
|
32
|
+
error?: undefined;
|
|
33
|
+
}>;
|
|
34
|
+
private getErrors;
|
|
35
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RippleErrorsCmd = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
// eslint-disable-next-line no-control-regex
|
|
18
|
+
const ANSI_REGEX = /\x1b\[[0-9;]*m/g;
|
|
19
|
+
class RippleErrorsCmd {
|
|
20
|
+
constructor(ripple) {
|
|
21
|
+
this.ripple = ripple;
|
|
22
|
+
this.name = 'errors [job-id]';
|
|
23
|
+
this.description = 'show build errors for a Ripple CI job (auto-detects current lane when no job-id given)';
|
|
24
|
+
this.skipWorkspace = true;
|
|
25
|
+
this.remoteOp = true;
|
|
26
|
+
this.alias = '';
|
|
27
|
+
this.options = [
|
|
28
|
+
['', 'lane <lane>', 'lane ID to find the latest failed job for (default: detected from .bitmap)'],
|
|
29
|
+
['', 'log', 'show full build log for failed containers (not just the error summary)'],
|
|
30
|
+
['j', 'json', 'return the output as JSON'],
|
|
31
|
+
];
|
|
32
|
+
this.arguments = [{ name: 'job-id', description: 'the Ripple CI job ID (optional — auto-detects from current lane)' }];
|
|
33
|
+
}
|
|
34
|
+
report(_a, flags_1) {
|
|
35
|
+
return __awaiter(this, arguments, void 0, function* ([jobId], flags) {
|
|
36
|
+
var _b, _c, _d;
|
|
37
|
+
const { job, ciNodes } = yield this.getErrors(jobId, flags);
|
|
38
|
+
if (!job) {
|
|
39
|
+
const laneId = flags.lane || this.ripple.getCurrentLaneId();
|
|
40
|
+
if (laneId) {
|
|
41
|
+
return chalk_1.default.red(`No failed Ripple CI job found for lane "${laneId}".`);
|
|
42
|
+
}
|
|
43
|
+
return chalk_1.default.red('Could not find a Ripple CI job. Provide a job ID, use --lane, or run from a workspace on a lane.');
|
|
44
|
+
}
|
|
45
|
+
const lines = [];
|
|
46
|
+
lines.push(chalk_1.default.bold(`Ripple CI Errors — ${job.name || job.id}`));
|
|
47
|
+
lines.push(` ${chalk_1.default.cyan('Job ID:')} ${job.id}`);
|
|
48
|
+
lines.push(` ${chalk_1.default.cyan('Status:')} ${colorPhase((_b = job.status) === null || _b === void 0 ? void 0 : _b.phase)}`);
|
|
49
|
+
if (job.laneId)
|
|
50
|
+
lines.push(` ${chalk_1.default.cyan('Lane:')} ${job.laneId}`);
|
|
51
|
+
lines.push(` ${chalk_1.default.cyan('URL:')} ${this.ripple.getJobUrl(job)}`);
|
|
52
|
+
if (ciNodes.length === 0) {
|
|
53
|
+
lines.push('');
|
|
54
|
+
lines.push(chalk_1.default.yellow('Could not determine which components are in this job.'));
|
|
55
|
+
return lines.join('\n');
|
|
56
|
+
}
|
|
57
|
+
const failedNodes = ciNodes.filter((n) => n.phase === 'FAILURE');
|
|
58
|
+
const succeededNodes = ciNodes.filter((n) => n.phase === 'SUCCESS');
|
|
59
|
+
const otherNodes = ciNodes.filter((n) => n.phase !== 'FAILURE' && n.phase !== 'SUCCESS');
|
|
60
|
+
const totalComponents = ciNodes.reduce((sum, n) => sum + n.componentIds.length, 0);
|
|
61
|
+
const failedComponents = failedNodes.flatMap((n) => n.componentIds);
|
|
62
|
+
const blockedComponents = otherNodes.flatMap((n) => n.componentIds);
|
|
63
|
+
if (failedComponents.length === 0) {
|
|
64
|
+
if (((_d = (_c = job.status) === null || _c === void 0 ? void 0 : _c.phase) === null || _d === void 0 ? void 0 : _d.toUpperCase()) === 'FAILURE') {
|
|
65
|
+
lines.push('');
|
|
66
|
+
lines.push(chalk_1.default.yellow(`${totalComponents} component(s) in this job — no individual component failures found.`));
|
|
67
|
+
lines.push(chalk_1.default.yellow('The failure may be in a pipeline-level step. Check the Ripple CI URL above.'));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
lines.push('');
|
|
71
|
+
lines.push(chalk_1.default.green(`All ${totalComponents} component(s) built successfully.`));
|
|
72
|
+
}
|
|
73
|
+
return lines.join('\n');
|
|
74
|
+
}
|
|
75
|
+
lines.push('');
|
|
76
|
+
lines.push(chalk_1.default.red.bold(`${failedComponents.length} component(s) with build failures:`));
|
|
77
|
+
// fetch all build logs in parallel
|
|
78
|
+
const containerNames = failedNodes.map((n) => n.containerName);
|
|
79
|
+
const logMap = yield this.ripple.getContainerLogs(job.id, containerNames);
|
|
80
|
+
for (const node of failedNodes) {
|
|
81
|
+
const compList = node.componentIds.join(', ');
|
|
82
|
+
lines.push('');
|
|
83
|
+
lines.push(chalk_1.default.bold(` ${compList}`));
|
|
84
|
+
const logMessages = logMap.get(node.containerName);
|
|
85
|
+
if (logMessages && logMessages.length > 0) {
|
|
86
|
+
const errorLines = flags.log ? logMessages : this.ripple.extractErrorsFromLog(logMessages);
|
|
87
|
+
if (errorLines.length > 0) {
|
|
88
|
+
for (const msg of errorLines) {
|
|
89
|
+
// strip ANSI codes and indent
|
|
90
|
+
const clean = msg.replace(ANSI_REGEX, '');
|
|
91
|
+
// skip stack trace lines (noisy) unless --log is used
|
|
92
|
+
if (!flags.log && (clean.match(/^\s+at /) || clean.match(/^\s+at\s/)))
|
|
93
|
+
continue;
|
|
94
|
+
if (clean.length > 0) {
|
|
95
|
+
lines.push(` ${clean}`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
lines.push(chalk_1.default.gray(' No error details found in build log.'));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
lines.push(chalk_1.default.gray(' Build log not available.'));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (blockedComponents.length > 0) {
|
|
108
|
+
lines.push('');
|
|
109
|
+
lines.push(chalk_1.default.yellow(`${blockedComponents.length} component(s) not built (blocked by failure):`));
|
|
110
|
+
for (const compId of blockedComponents) {
|
|
111
|
+
lines.push(` ${chalk_1.default.yellow('○')} ${compId}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
if (succeededNodes.length > 0) {
|
|
115
|
+
const succeededCount = succeededNodes.reduce((sum, n) => sum + n.componentIds.length, 0);
|
|
116
|
+
lines.push('');
|
|
117
|
+
lines.push(chalk_1.default.green(`${succeededCount} component(s) built successfully.`));
|
|
118
|
+
}
|
|
119
|
+
return lines.join('\n');
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
json(_a, flags_1) {
|
|
123
|
+
return __awaiter(this, arguments, void 0, function* ([jobId], flags) {
|
|
124
|
+
const { job, ciNodes } = yield this.getErrors(jobId, flags);
|
|
125
|
+
if (!job)
|
|
126
|
+
return { error: 'No job found', job: null, ciNodes: [], containerLogs: {} };
|
|
127
|
+
// fetch error logs for failed containers in parallel
|
|
128
|
+
const failedNodes = ciNodes.filter((n) => n.phase === 'FAILURE');
|
|
129
|
+
const containerNames = failedNodes.map((n) => n.containerName);
|
|
130
|
+
const logMap = yield this.ripple.getContainerLogs(job.id, containerNames);
|
|
131
|
+
const containerLogs = {};
|
|
132
|
+
for (const [name, messages] of logMap) {
|
|
133
|
+
containerLogs[name] = flags.log ? messages : this.ripple.extractErrorsFromLog(messages);
|
|
134
|
+
}
|
|
135
|
+
return { job, ciNodes, containerLogs };
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
getErrors(jobId, flags) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
let job;
|
|
141
|
+
if (jobId) {
|
|
142
|
+
job = yield this.ripple.getJob(jobId);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const laneId = flags.lane || this.ripple.getCurrentLaneId();
|
|
146
|
+
if (!laneId) {
|
|
147
|
+
return { job: null, ciNodes: [] };
|
|
148
|
+
}
|
|
149
|
+
const found = yield this.ripple.findLatestJobForLane(laneId, 'FAILURE');
|
|
150
|
+
job = found ? yield this.ripple.getJob(found.id) : null;
|
|
151
|
+
}
|
|
152
|
+
if (!job) {
|
|
153
|
+
return { job: null, ciNodes: [] };
|
|
154
|
+
}
|
|
155
|
+
// use ciGraph (internal graph) for job-specific build status per container/component
|
|
156
|
+
const ciNodes = this.ripple.getCiGraphNodes(job);
|
|
157
|
+
return { job, ciNodes };
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
exports.RippleErrorsCmd = RippleErrorsCmd;
|
|
162
|
+
function colorPhase(phase) {
|
|
163
|
+
if (!phase)
|
|
164
|
+
return chalk_1.default.yellow('unknown');
|
|
165
|
+
switch (phase.toUpperCase()) {
|
|
166
|
+
case 'SUCCESS':
|
|
167
|
+
return chalk_1.default.green(phase);
|
|
168
|
+
case 'FAILED':
|
|
169
|
+
case 'FAILURE':
|
|
170
|
+
return chalk_1.default.red(phase);
|
|
171
|
+
case 'RUNNING':
|
|
172
|
+
case 'IN_PROGRESS':
|
|
173
|
+
return chalk_1.default.blue(phase);
|
|
174
|
+
default:
|
|
175
|
+
return chalk_1.default.yellow(phase);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=ripple-errors.cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripple-errors.cmd.js","sourceRoot":"","sources":["../ripple-errors.cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Command, CommandOptions } from '@teambit/cli';
|
|
2
|
+
import type { RippleMain, RippleJob } from './ripple.main.runtime';
|
|
3
|
+
export declare class RippleListCmd implements Command {
|
|
4
|
+
private ripple;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
skipWorkspace: boolean;
|
|
8
|
+
remoteOp: boolean;
|
|
9
|
+
alias: string;
|
|
10
|
+
options: CommandOptions;
|
|
11
|
+
constructor(ripple: RippleMain);
|
|
12
|
+
report(args: [], flags: {
|
|
13
|
+
all?: boolean;
|
|
14
|
+
owner?: string;
|
|
15
|
+
scope?: string;
|
|
16
|
+
lane?: string;
|
|
17
|
+
user?: string;
|
|
18
|
+
status?: string;
|
|
19
|
+
limit?: string;
|
|
20
|
+
}): Promise<string>;
|
|
21
|
+
json(args: [], flags: {
|
|
22
|
+
all?: boolean;
|
|
23
|
+
owner?: string;
|
|
24
|
+
scope?: string;
|
|
25
|
+
lane?: string;
|
|
26
|
+
user?: string;
|
|
27
|
+
status?: string;
|
|
28
|
+
limit?: string;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
jobs: RippleJob[];
|
|
31
|
+
}>;
|
|
32
|
+
private getFilteredJobs;
|
|
33
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RippleListCmd = void 0;
|
|
16
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
17
|
+
const cli_table_1 = __importDefault(require("cli-table"));
|
|
18
|
+
class RippleListCmd {
|
|
19
|
+
constructor(ripple) {
|
|
20
|
+
this.ripple = ripple;
|
|
21
|
+
this.name = 'list';
|
|
22
|
+
this.description = 'list recent Ripple CI jobs (filtered by workspace owner by default)';
|
|
23
|
+
this.skipWorkspace = true;
|
|
24
|
+
this.remoteOp = true;
|
|
25
|
+
this.alias = '';
|
|
26
|
+
this.options = [
|
|
27
|
+
['', 'all', 'show jobs from all owners, not just the workspace owner'],
|
|
28
|
+
['o', 'owner <owner>', 'filter by organization name (default: detected from workspace.jsonc)'],
|
|
29
|
+
['s', 'scope <scope>', 'filter by scope (e.g. "teambit.cloud")'],
|
|
30
|
+
['', 'lane <lane>', 'filter by lane name'],
|
|
31
|
+
['u', 'user <user>', 'filter by username'],
|
|
32
|
+
['', 'status <status>', 'filter by status (e.g. SUCCESS, FAILURE, RUNNING)'],
|
|
33
|
+
['l', 'limit <limit>', 'max number of jobs to show (default: 20)'],
|
|
34
|
+
['j', 'json', 'return the output as JSON'],
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
report(args, flags) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
var _a, _b, _c, _d, _e;
|
|
40
|
+
const { jobs, ownerUsed } = yield this.getFilteredJobs(flags);
|
|
41
|
+
if (!jobs || jobs.length === 0) {
|
|
42
|
+
let hint = '';
|
|
43
|
+
if (flags.lane)
|
|
44
|
+
hint = ` for lane "${flags.lane}"`;
|
|
45
|
+
else if (flags.scope)
|
|
46
|
+
hint = ` for scope "${flags.scope}"`;
|
|
47
|
+
else if (ownerUsed)
|
|
48
|
+
hint = ` for owner "${ownerUsed}"`;
|
|
49
|
+
const tip = ownerUsed ? ' Use --all to see jobs from all owners.' : '';
|
|
50
|
+
return chalk_1.default.yellow(`No Ripple CI jobs found${hint}.${tip}`);
|
|
51
|
+
}
|
|
52
|
+
const table = new cli_table_1.default({
|
|
53
|
+
head: [
|
|
54
|
+
chalk_1.default.cyan('Job ID'),
|
|
55
|
+
chalk_1.default.cyan('Name'),
|
|
56
|
+
chalk_1.default.cyan('Scope'),
|
|
57
|
+
chalk_1.default.cyan('Status'),
|
|
58
|
+
chalk_1.default.cyan('User'),
|
|
59
|
+
chalk_1.default.cyan('Started'),
|
|
60
|
+
chalk_1.default.cyan('Duration'),
|
|
61
|
+
],
|
|
62
|
+
chars: {
|
|
63
|
+
top: '',
|
|
64
|
+
'top-mid': '',
|
|
65
|
+
'top-left': '',
|
|
66
|
+
'top-right': '',
|
|
67
|
+
bottom: '',
|
|
68
|
+
'bottom-mid': '',
|
|
69
|
+
'bottom-left': '',
|
|
70
|
+
'bottom-right': '',
|
|
71
|
+
left: '',
|
|
72
|
+
'left-mid': '',
|
|
73
|
+
mid: '',
|
|
74
|
+
'mid-mid': '',
|
|
75
|
+
right: '',
|
|
76
|
+
'right-mid': '',
|
|
77
|
+
middle: ' ',
|
|
78
|
+
},
|
|
79
|
+
style: { 'padding-left': 1, 'padding-right': 1 },
|
|
80
|
+
});
|
|
81
|
+
for (const job of jobs) {
|
|
82
|
+
table.push([
|
|
83
|
+
job.id,
|
|
84
|
+
truncate(job.name || '-', 40),
|
|
85
|
+
getScopeFromLaneId(job.laneId),
|
|
86
|
+
colorPhase((_a = job.status) === null || _a === void 0 ? void 0 : _a.phase),
|
|
87
|
+
((_b = job.user) === null || _b === void 0 ? void 0 : _b.username) || '-',
|
|
88
|
+
formatDate((_c = job.status) === null || _c === void 0 ? void 0 : _c.startedAt),
|
|
89
|
+
formatDuration((_d = job.status) === null || _d === void 0 ? void 0 : _d.startedAt, (_e = job.status) === null || _e === void 0 ? void 0 : _e.finishedAt),
|
|
90
|
+
]);
|
|
91
|
+
}
|
|
92
|
+
const header = ownerUsed ? chalk_1.default.gray(`showing jobs for owner "${ownerUsed}" (use --all for all jobs)`) : '';
|
|
93
|
+
return [header, table.toString()].filter(Boolean).join('\n');
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
json(args, flags) {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
const { jobs } = yield this.getFilteredJobs(flags);
|
|
99
|
+
return { jobs: jobs || [] };
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
getFilteredJobs(flags) {
|
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
const requestedLimit = flags.limit ? parseInt(flags.limit, 10) : 20;
|
|
105
|
+
if (!Number.isFinite(requestedLimit) || requestedLimit < 1) {
|
|
106
|
+
return { jobs: [], ownerUsed: undefined };
|
|
107
|
+
}
|
|
108
|
+
// build server-side filters
|
|
109
|
+
const filters = {};
|
|
110
|
+
// determine owner for default filtering (skip when --lane or --scope is given explicitly)
|
|
111
|
+
let ownerUsed;
|
|
112
|
+
if (!flags.all && !flags.lane && !flags.scope) {
|
|
113
|
+
ownerUsed = flags.owner || this.ripple.getDefaultOwner();
|
|
114
|
+
}
|
|
115
|
+
else if (flags.owner) {
|
|
116
|
+
ownerUsed = flags.owner;
|
|
117
|
+
}
|
|
118
|
+
if (ownerUsed)
|
|
119
|
+
filters.owners = [ownerUsed];
|
|
120
|
+
if (flags.lane)
|
|
121
|
+
filters.lanes = [flags.lane];
|
|
122
|
+
if (flags.scope)
|
|
123
|
+
filters.scopes = [flags.scope];
|
|
124
|
+
if (flags.status)
|
|
125
|
+
filters.status = flags.status.toUpperCase();
|
|
126
|
+
// user filter is not supported server-side, so overfetch if needed
|
|
127
|
+
const needsClientFilter = !!flags.user;
|
|
128
|
+
const fetchLimit = needsClientFilter ? Math.max(requestedLimit * 5, 100) : requestedLimit;
|
|
129
|
+
let jobs = yield this.ripple.listJobs({ filters, limit: fetchLimit });
|
|
130
|
+
// apply client-side filters for fields not supported by FilterOptions
|
|
131
|
+
if (flags.user) {
|
|
132
|
+
const userFilter = flags.user.toLowerCase();
|
|
133
|
+
jobs = jobs.filter((j) => { var _a, _b; return (_b = (_a = j.user) === null || _a === void 0 ? void 0 : _a.username) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(userFilter); });
|
|
134
|
+
}
|
|
135
|
+
jobs = jobs.slice(0, requestedLimit);
|
|
136
|
+
return { jobs, ownerUsed };
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.RippleListCmd = RippleListCmd;
|
|
141
|
+
function colorPhase(phase) {
|
|
142
|
+
if (!phase)
|
|
143
|
+
return chalk_1.default.yellow('unknown');
|
|
144
|
+
switch (phase.toUpperCase()) {
|
|
145
|
+
case 'SUCCESS':
|
|
146
|
+
return chalk_1.default.green(phase);
|
|
147
|
+
case 'FAILED':
|
|
148
|
+
case 'FAILURE':
|
|
149
|
+
return chalk_1.default.red(phase);
|
|
150
|
+
case 'RUNNING':
|
|
151
|
+
case 'IN_PROGRESS':
|
|
152
|
+
return chalk_1.default.blue(phase);
|
|
153
|
+
case 'STOPPED':
|
|
154
|
+
case 'PAUSED':
|
|
155
|
+
return chalk_1.default.gray(phase);
|
|
156
|
+
default:
|
|
157
|
+
return chalk_1.default.yellow(phase);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function formatDate(dateStr) {
|
|
161
|
+
if (!dateStr)
|
|
162
|
+
return '-';
|
|
163
|
+
try {
|
|
164
|
+
return new Date(dateStr).toLocaleString();
|
|
165
|
+
}
|
|
166
|
+
catch (_a) {
|
|
167
|
+
return dateStr;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function formatDuration(startedAt, finishedAt) {
|
|
171
|
+
if (!startedAt)
|
|
172
|
+
return '-';
|
|
173
|
+
const start = new Date(startedAt).getTime();
|
|
174
|
+
const end = finishedAt ? new Date(finishedAt).getTime() : Date.now();
|
|
175
|
+
const ms = end - start;
|
|
176
|
+
if (ms < 0)
|
|
177
|
+
return '-';
|
|
178
|
+
const seconds = Math.floor(ms / 1000);
|
|
179
|
+
if (seconds < 60)
|
|
180
|
+
return `${seconds}s`;
|
|
181
|
+
const minutes = Math.floor(seconds / 60);
|
|
182
|
+
const remainingSeconds = seconds % 60;
|
|
183
|
+
if (minutes < 60)
|
|
184
|
+
return `${minutes}m ${remainingSeconds}s`;
|
|
185
|
+
const hours = Math.floor(minutes / 60);
|
|
186
|
+
const remainingMinutes = minutes % 60;
|
|
187
|
+
return `${hours}h ${remainingMinutes}m`;
|
|
188
|
+
}
|
|
189
|
+
function getScopeFromLaneId(laneId) {
|
|
190
|
+
if (!laneId)
|
|
191
|
+
return '-';
|
|
192
|
+
return laneId.split('/')[0] || '-';
|
|
193
|
+
}
|
|
194
|
+
function truncate(str, max) {
|
|
195
|
+
if (str.length <= max)
|
|
196
|
+
return str;
|
|
197
|
+
return `${str.substring(0, max - 1)}…`;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=ripple-list.cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ripple-list.cmd.js","sourceRoot":"","sources":["../ripple-list.cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Command, CommandOptions } from '@teambit/cli';
|
|
2
|
+
import type { RippleMain } from './ripple.main.runtime';
|
|
3
|
+
export declare class RippleLogCmd implements Command {
|
|
4
|
+
private ripple;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
skipWorkspace: boolean;
|
|
8
|
+
remoteOp: boolean;
|
|
9
|
+
alias: string;
|
|
10
|
+
options: CommandOptions;
|
|
11
|
+
arguments: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}[];
|
|
15
|
+
constructor(ripple: RippleMain);
|
|
16
|
+
private resolveJob;
|
|
17
|
+
report([jobId]: [string], flags: {
|
|
18
|
+
lane?: string;
|
|
19
|
+
component?: string;
|
|
20
|
+
}): Promise<string>;
|
|
21
|
+
json([jobId]: [string], flags: {
|
|
22
|
+
lane?: string;
|
|
23
|
+
component?: string;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
job: import("./ripple.main.runtime").RippleJob & {
|
|
26
|
+
hash?: string;
|
|
27
|
+
ciGraph?: string;
|
|
28
|
+
ciComponentGraph?: string;
|
|
29
|
+
};
|
|
30
|
+
componentBuild: import("./ripple.main.runtime").ComponentBuildSummary;
|
|
31
|
+
} | {
|
|
32
|
+
job: import("./ripple.main.runtime").RippleJob & {
|
|
33
|
+
hash?: string;
|
|
34
|
+
ciGraph?: string;
|
|
35
|
+
ciComponentGraph?: string;
|
|
36
|
+
};
|
|
37
|
+
componentBuild?: undefined;
|
|
38
|
+
}>;
|
|
39
|
+
}
|