@faros-fde-sandbox/cli 1.0.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/LICENSE +17 -0
- package/README.md +416 -0
- package/bin/faros +3 -0
- package/lib/commands/logs/index.d.ts +3 -0
- package/lib/commands/logs/index.d.ts.map +1 -0
- package/lib/commands/logs/index.js +162 -0
- package/lib/commands/logs/index.js.map +1 -0
- package/lib/commands/sources/index.d.ts +3 -0
- package/lib/commands/sources/index.d.ts.map +1 -0
- package/lib/commands/sources/index.js +99 -0
- package/lib/commands/sources/index.js.map +1 -0
- package/lib/commands/sync/ci-cd.d.ts +3 -0
- package/lib/commands/sync/ci-cd.d.ts.map +1 -0
- package/lib/commands/sync/ci-cd.js +188 -0
- package/lib/commands/sync/ci-cd.js.map +1 -0
- package/lib/commands/sync/index.d.ts +3 -0
- package/lib/commands/sync/index.d.ts.map +1 -0
- package/lib/commands/sync/index.js +25 -0
- package/lib/commands/sync/index.js.map +1 -0
- package/lib/commands/sync/tests.d.ts +3 -0
- package/lib/commands/sync/tests.d.ts.map +1 -0
- package/lib/commands/sync/tests.js +317 -0
- package/lib/commands/sync/tests.js.map +1 -0
- package/lib/config/loader.d.ts +5 -0
- package/lib/config/loader.d.ts.map +1 -0
- package/lib/config/loader.js +137 -0
- package/lib/config/loader.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +73 -0
- package/lib/index.js.map +1 -0
- package/lib/lib/api/client.d.ts +8 -0
- package/lib/lib/api/client.d.ts.map +1 -0
- package/lib/lib/api/client.js +43 -0
- package/lib/lib/api/client.js.map +1 -0
- package/lib/lib/sources/s3.d.ts +19 -0
- package/lib/lib/sources/s3.d.ts.map +1 -0
- package/lib/lib/sources/s3.js +139 -0
- package/lib/lib/sources/s3.js.map +1 -0
- package/lib/lib/ui/index.d.ts +32 -0
- package/lib/lib/ui/index.d.ts.map +1 -0
- package/lib/lib/ui/index.js +88 -0
- package/lib/lib/ui/index.js.map +1 -0
- package/lib/types/config.d.ts +160 -0
- package/lib/types/config.d.ts.map +1 -0
- package/lib/types/config.js +40 -0
- package/lib/types/config.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.sourcesCommand = sourcesCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const loader_1 = require("../../config/loader");
|
|
10
|
+
const ui_1 = require("../../lib/ui");
|
|
11
|
+
async function listSources() {
|
|
12
|
+
const config = await (0, loader_1.loadConfig)();
|
|
13
|
+
if (!config || !config.sources || Object.keys(config.sources).length === 0) {
|
|
14
|
+
ui_1.ui.log.info('No sources configured');
|
|
15
|
+
console.log();
|
|
16
|
+
console.log(chalk_1.default.dim('Configure sources in .farosrc.json or use:'));
|
|
17
|
+
console.log(chalk_1.default.dim(' faros config init'));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
console.log(chalk_1.default.bold('\nConfigured Sources:\n'));
|
|
21
|
+
const table = ui_1.ui.table(['Source', 'Type', 'Status', 'Config']);
|
|
22
|
+
for (const [name, sourceConfig] of Object.entries(config.sources)) {
|
|
23
|
+
const type = sourceConfig.type || 'Unknown';
|
|
24
|
+
const hasAuth = sourceConfig.apiKey || sourceConfig.token ? ui_1.ui.success : chalk_1.default.yellow('⚠');
|
|
25
|
+
const status = sourceConfig.apiKey || sourceConfig.token ? 'Configured' : 'Missing credentials';
|
|
26
|
+
table.push([
|
|
27
|
+
name,
|
|
28
|
+
type,
|
|
29
|
+
hasAuth,
|
|
30
|
+
status
|
|
31
|
+
]);
|
|
32
|
+
}
|
|
33
|
+
console.log(table.toString());
|
|
34
|
+
console.log();
|
|
35
|
+
console.log(chalk_1.default.dim('Run \'faros sources get <name>\' for details'));
|
|
36
|
+
}
|
|
37
|
+
async function getSource(name) {
|
|
38
|
+
const config = await (0, loader_1.loadConfig)();
|
|
39
|
+
if (!config || !config.sources || !config.sources[name]) {
|
|
40
|
+
ui_1.ui.log.error(`Source '${name}' not found`);
|
|
41
|
+
console.log(chalk_1.default.dim('Run \'faros sources list\' to see all sources'));
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
const source = config.sources[name];
|
|
45
|
+
console.log(chalk_1.default.bold(`\nSource: ${name}\n`));
|
|
46
|
+
console.log(`Type: ${source.type || 'Unknown'}`);
|
|
47
|
+
if (source.apiKey) {
|
|
48
|
+
console.log(`API Key: ${source.apiKey.substring(0, 10)}***`);
|
|
49
|
+
}
|
|
50
|
+
if (source.token) {
|
|
51
|
+
console.log(`Token: ${source.token.substring(0, 10)}***`);
|
|
52
|
+
}
|
|
53
|
+
if (source.syncInterval) {
|
|
54
|
+
console.log(`Sync Interval: ${source.syncInterval}`);
|
|
55
|
+
}
|
|
56
|
+
if (source.streams && source.streams.length > 0) {
|
|
57
|
+
console.log(`Streams: ${source.streams.join(', ')}`);
|
|
58
|
+
}
|
|
59
|
+
console.log();
|
|
60
|
+
}
|
|
61
|
+
function sourcesCommand() {
|
|
62
|
+
const cmd = new commander_1.Command('sources');
|
|
63
|
+
cmd
|
|
64
|
+
.description('Manage data sources')
|
|
65
|
+
.addHelpText('after', `
|
|
66
|
+
Examples:
|
|
67
|
+
$ faros sources list
|
|
68
|
+
$ faros sources get linear
|
|
69
|
+
`);
|
|
70
|
+
// List subcommand
|
|
71
|
+
const listCmd = new commander_1.Command('list')
|
|
72
|
+
.description('List all configured sources')
|
|
73
|
+
.action(async () => {
|
|
74
|
+
try {
|
|
75
|
+
await listSources();
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
ui_1.ui.log.error(error.message);
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
// Get subcommand
|
|
83
|
+
const getCmd = new commander_1.Command('get')
|
|
84
|
+
.description('Get details for a specific source')
|
|
85
|
+
.argument('<name>', 'Source name')
|
|
86
|
+
.action(async (name) => {
|
|
87
|
+
try {
|
|
88
|
+
await getSource(name);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
ui_1.ui.log.error(error.message);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
cmd.addCommand(listCmd);
|
|
96
|
+
cmd.addCommand(getCmd);
|
|
97
|
+
return cmd;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sources/index.ts"],"names":[],"mappings":";;;;;AA6EA,wCAwCC;AArHD,yCAAoC;AACpC,kDAA0B;AAC1B,gDAAiD;AACjD,qCAAkC;AASlC,KAAK,UAAU,WAAW;IACxB,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAU,GAAE,CAAC;IAElC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3E,OAAE,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEnD,MAAM,KAAK,GAAG,OAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/D,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,IAAI,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,OAAE,CAAC,OAAO,CAAC,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC;QAEhG,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAY;IACnC,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAU,GAAE,CAAC;IAElC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,OAAE,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC,CAAC;IAEnC,GAAG;SACA,WAAW,CAAC,qBAAqB,CAAC;SAClC,WAAW,CAAC,OAAO,EAAE;;;;KAIrB,CAAC,CAAC;IAEL,kBAAkB;IAClB,MAAM,OAAO,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;SAChC,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,WAAW,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,iBAAiB;IACjB,MAAM,MAAM,GAAG,IAAI,mBAAO,CAAC,KAAK,CAAC;SAC9B,WAAW,CAAC,mCAAmC,CAAC;SAChD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-cd.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/ci-cd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAoJ5C,wBAAgB,eAAe,IAAI,OAAO,CAqDzC"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.syncCICDCommand = syncCICDCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const loader_1 = require("../../config/loader");
|
|
10
|
+
const client_1 = require("../../lib/api/client");
|
|
11
|
+
const ui_1 = require("../../lib/ui");
|
|
12
|
+
var Status;
|
|
13
|
+
(function (Status) {
|
|
14
|
+
Status["Success"] = "Success";
|
|
15
|
+
Status["Failed"] = "Failed";
|
|
16
|
+
Status["Canceled"] = "Canceled";
|
|
17
|
+
Status["Queued"] = "Queued";
|
|
18
|
+
Status["Running"] = "Running";
|
|
19
|
+
Status["Unknown"] = "Unknown";
|
|
20
|
+
})(Status || (Status = {}));
|
|
21
|
+
var DeployStatus;
|
|
22
|
+
(function (DeployStatus) {
|
|
23
|
+
DeployStatus["Success"] = "Success";
|
|
24
|
+
DeployStatus["Failed"] = "Failed";
|
|
25
|
+
DeployStatus["Canceled"] = "Canceled";
|
|
26
|
+
DeployStatus["Queued"] = "Queued";
|
|
27
|
+
DeployStatus["Running"] = "Running";
|
|
28
|
+
DeployStatus["RolledBack"] = "RolledBack";
|
|
29
|
+
})(DeployStatus || (DeployStatus = {}));
|
|
30
|
+
function parseTime(time) {
|
|
31
|
+
if (time.toLowerCase() === 'now') {
|
|
32
|
+
return new Date().toISOString();
|
|
33
|
+
}
|
|
34
|
+
if (/^\d+$/.test(time)) {
|
|
35
|
+
return new Date(parseInt(time, 10)).toISOString();
|
|
36
|
+
}
|
|
37
|
+
return time;
|
|
38
|
+
}
|
|
39
|
+
async function syncBuildStatus(options) {
|
|
40
|
+
const fileConfig = await (0, loader_1.loadConfig)();
|
|
41
|
+
const config = (0, loader_1.mergeConfig)(fileConfig, options);
|
|
42
|
+
if (!options.commit && !options.run) {
|
|
43
|
+
throw new Error('Either --commit or --run is required');
|
|
44
|
+
}
|
|
45
|
+
const targetGraph = options.dryRun ? (0, loader_1.getStagingGraph)(config) : config.graph;
|
|
46
|
+
if (options.dryRun) {
|
|
47
|
+
ui_1.ui.log.warning(`Dry-run mode: syncing to staging graph '${targetGraph}'`);
|
|
48
|
+
console.log();
|
|
49
|
+
}
|
|
50
|
+
const data = {
|
|
51
|
+
type: 'CI',
|
|
52
|
+
version: '0.0.1',
|
|
53
|
+
origin: config.origin,
|
|
54
|
+
data: {},
|
|
55
|
+
};
|
|
56
|
+
if (options.commit) {
|
|
57
|
+
data.data.commit = { uri: options.commit };
|
|
58
|
+
}
|
|
59
|
+
if (options.artifact) {
|
|
60
|
+
data.data.artifact = { uri: options.artifact };
|
|
61
|
+
}
|
|
62
|
+
if (options.run) {
|
|
63
|
+
const run = { uri: options.run };
|
|
64
|
+
if (options.runStatus)
|
|
65
|
+
run.status = { category: options.runStatus };
|
|
66
|
+
if (options.runStartTime)
|
|
67
|
+
run.startedAt = parseTime(options.runStartTime);
|
|
68
|
+
if (options.runEndTime)
|
|
69
|
+
run.endedAt = parseTime(options.runEndTime);
|
|
70
|
+
data.data.run = run;
|
|
71
|
+
}
|
|
72
|
+
const spinner = ui_1.ui.spinner('Reporting build status...');
|
|
73
|
+
spinner.start();
|
|
74
|
+
const client = (0, client_1.createClient)(config);
|
|
75
|
+
await (0, client_1.sendEvent)(client, targetGraph, data);
|
|
76
|
+
spinner.succeed('Build status reported');
|
|
77
|
+
if (options.dryRun) {
|
|
78
|
+
console.log(chalk_1.default.dim(` Graph: ${targetGraph}`));
|
|
79
|
+
console.log(chalk_1.default.dim(' Run without --dry-run to sync to production'));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async function syncDeployStatus(options) {
|
|
83
|
+
const fileConfig = await (0, loader_1.loadConfig)();
|
|
84
|
+
const config = (0, loader_1.mergeConfig)(fileConfig, options);
|
|
85
|
+
if (!options.deploy) {
|
|
86
|
+
throw new Error('--deploy is required for deployment events');
|
|
87
|
+
}
|
|
88
|
+
if (!options.commit && !options.artifact) {
|
|
89
|
+
throw new Error('Either --commit or --artifact is required');
|
|
90
|
+
}
|
|
91
|
+
const targetGraph = options.dryRun ? (0, loader_1.getStagingGraph)(config) : config.graph;
|
|
92
|
+
if (options.dryRun) {
|
|
93
|
+
ui_1.ui.log.warning(`Dry-run mode: syncing to staging graph '${targetGraph}'`);
|
|
94
|
+
console.log();
|
|
95
|
+
}
|
|
96
|
+
const data = {
|
|
97
|
+
type: 'CD',
|
|
98
|
+
version: '0.0.1',
|
|
99
|
+
origin: config.origin,
|
|
100
|
+
data: {
|
|
101
|
+
deploy: { uri: options.deploy },
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
if (options.commit) {
|
|
105
|
+
data.data.commit = { uri: options.commit };
|
|
106
|
+
}
|
|
107
|
+
else if (options.artifact) {
|
|
108
|
+
data.data.artifact = { uri: options.artifact };
|
|
109
|
+
}
|
|
110
|
+
const deploy = data.data.deploy;
|
|
111
|
+
if (options.deployStatus)
|
|
112
|
+
deploy.status = { category: options.deployStatus };
|
|
113
|
+
if (options.deployStartTime)
|
|
114
|
+
deploy.startedAt = parseTime(options.deployStartTime);
|
|
115
|
+
if (options.deployEndTime)
|
|
116
|
+
deploy.endedAt = parseTime(options.deployEndTime);
|
|
117
|
+
if (options.run) {
|
|
118
|
+
const run = { uri: options.run };
|
|
119
|
+
if (options.runStatus)
|
|
120
|
+
run.status = { category: options.runStatus };
|
|
121
|
+
if (options.runStartTime)
|
|
122
|
+
run.startedAt = parseTime(options.runStartTime);
|
|
123
|
+
if (options.runEndTime)
|
|
124
|
+
run.endedAt = parseTime(options.runEndTime);
|
|
125
|
+
data.data.run = run;
|
|
126
|
+
}
|
|
127
|
+
const spinner = ui_1.ui.spinner('Reporting deployment...');
|
|
128
|
+
spinner.start();
|
|
129
|
+
const client = (0, client_1.createClient)(config);
|
|
130
|
+
await (0, client_1.sendEvent)(client, targetGraph, data);
|
|
131
|
+
spinner.succeed('Deployment reported');
|
|
132
|
+
if (options.dryRun) {
|
|
133
|
+
console.log(chalk_1.default.dim(` Graph: ${targetGraph}`));
|
|
134
|
+
console.log(chalk_1.default.dim(' Run without --dry-run to sync to production'));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function syncCICDCommand() {
|
|
138
|
+
const cmd = new commander_1.Command('ci-cd');
|
|
139
|
+
cmd.description('Sync CI/CD events (builds and deployments) to Faros');
|
|
140
|
+
// Build subcommand
|
|
141
|
+
const buildCmd = new commander_1.Command('build')
|
|
142
|
+
.description('Report build status')
|
|
143
|
+
.option('--status <status>', 'Build status')
|
|
144
|
+
.option('--commit <uri>', 'Commit URI')
|
|
145
|
+
.option('--run <uri>', 'Run URI')
|
|
146
|
+
.option('--run-status <status>', 'Run status')
|
|
147
|
+
.option('--run-start-time <time>', 'Run start time')
|
|
148
|
+
.option('--run-end-time <time>', 'Run end time')
|
|
149
|
+
.option('--artifact <uri>', 'Artifact URI')
|
|
150
|
+
.option('--dry-run', 'Sync to staging graph')
|
|
151
|
+
.action(async (options) => {
|
|
152
|
+
try {
|
|
153
|
+
await syncBuildStatus({ ...options, runStatus: options.status || options.runStatus });
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
ui_1.ui.log.error(error.message);
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
// Deploy subcommand
|
|
161
|
+
const deployCmd = new commander_1.Command('deploy')
|
|
162
|
+
.description('Report deployment status')
|
|
163
|
+
.option('--status <status>', 'Deploy status')
|
|
164
|
+
.option('--commit <uri>', 'Commit URI')
|
|
165
|
+
.option('--deploy <uri>', 'Deploy URI (required)')
|
|
166
|
+
.option('--deploy-status <status>', 'Deploy status')
|
|
167
|
+
.option('--deploy-start-time <time>', 'Deploy start time')
|
|
168
|
+
.option('--deploy-end-time <time>', 'Deploy end time')
|
|
169
|
+
.option('--artifact <uri>', 'Artifact URI')
|
|
170
|
+
.option('--run <uri>', 'Run URI')
|
|
171
|
+
.option('--run-status <status>', 'Run status')
|
|
172
|
+
.option('--run-start-time <time>', 'Run start time')
|
|
173
|
+
.option('--run-end-time <time>', 'Run end time')
|
|
174
|
+
.option('--dry-run', 'Sync to staging graph')
|
|
175
|
+
.action(async (options) => {
|
|
176
|
+
try {
|
|
177
|
+
await syncDeployStatus({ ...options, deployStatus: options.status || options.deployStatus });
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
ui_1.ui.log.error(error.message);
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
cmd.addCommand(buildCmd);
|
|
185
|
+
cmd.addCommand(deployCmd);
|
|
186
|
+
return cmd;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=ci-cd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-cd.js","sourceRoot":"","sources":["../../../src/commands/sync/ci-cd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,WAAW,IAAI,OAAO,CAoBrC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.syncCommand = syncCommand;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const tests_1 = require("./tests");
|
|
6
|
+
const ci_cd_1 = require("./ci-cd");
|
|
7
|
+
function syncCommand() {
|
|
8
|
+
const cmd = new commander_1.Command('sync');
|
|
9
|
+
cmd
|
|
10
|
+
.description('Sync data from various sources to Faros')
|
|
11
|
+
.addHelpText('after', `
|
|
12
|
+
Available Sources:
|
|
13
|
+
tests Sync test results (JUnit/TestNG/xUnit/Cucumber/Mocha)
|
|
14
|
+
ci-cd Sync CI/CD events (builds and deployments)
|
|
15
|
+
|
|
16
|
+
Examples:
|
|
17
|
+
$ faros sync tests test-results/*.xml --source "Jenkins"
|
|
18
|
+
$ faros sync ci-cd build --status Success --commit "GitHub://org/repo/abc"
|
|
19
|
+
`);
|
|
20
|
+
// Register subcommands
|
|
21
|
+
cmd.addCommand((0, tests_1.syncTestsCommand)());
|
|
22
|
+
cmd.addCommand((0, ci_cd_1.syncCICDCommand)());
|
|
23
|
+
return cmd;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":";;AAIA,kCAoBC;AAxBD,yCAAoC;AACpC,mCAA2C;AAC3C,mCAA0C;AAE1C,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,GAAG;SACA,WAAW,CAAC,yCAAyC,CAAC;SACtD,WAAW,CAAC,OAAO,EAAE;;;;;;;;KAQrB,CAAC,CAAC;IAEL,uBAAuB;IACvB,GAAG,CAAC,UAAU,CAAC,IAAA,wBAAgB,GAAE,CAAC,CAAC;IACnC,GAAG,CAAC,UAAU,CAAC,IAAA,uBAAe,GAAE,CAAC,CAAC;IAElC,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAuT5C,wBAAgB,gBAAgB,IAAI,OAAO,CAwD1C"}
|