morning-builds-core
Version:
Core functionality for Morning Builds
32 lines • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var Table = require("cli-table");
exports.initMessage = function (dryRun) { return ("\nFetching failing builds...\n" + (dryRun ? 'This is a dry-run, no actions will be taken on failing builds (like re-runs, updating flaky Jira issues or storing statistics or state)' : '') + "\n"); };
exports.failedBuildsCountMessage = function (failingBuilds) { return (failingBuilds.length + " failing builds today"); };
exports.failCategoriesCountMessage = function (buildsWithFailDetails) {
var countMap = buildsWithFailDetails
.map(function (b) { return b.failReason; })
.reduce(function (map, reason) {
return Object.assign(map, (_a = {}, _a[reason] = (map[reason] || 0) + 1, _a));
var _a;
}, {});
var countMsg = Object.keys(countMap)
.map(function (k) { return countMap[k] + " builds failed due to " + k + "."; })
.join('\n');
return countMsg;
};
exports.formatDetailsTable = function (buildsWithFailDetails) {
var table = new Table({});
table.push(['Build', 'Fail reason', 'Details', 'Issue']);
table.push.apply(table, buildsWithFailDetails
.map(function (b) { return ({
buildKey: b.build.planKey + "-" + b.build.resultNumber,
failReason: b.failReason,
details: b.failDetails ? b.failDetails.join('\n') : '',
//TODO: test with tests with and without jira issues
issues: (b.failingTests ? "" + b.failingTests.map(function (t) { return (t.issue ? t.issue.key : null); }).filter(function (i) { return i; }).join('\n') : '')
}); })
.map(function (b) { return [b.buildKey, b.failReason, b.details, b.issues]; }));
return "\n" + table.toString() + "\n";
};
//# sourceMappingURL=format-messages.js.map