coverage-badges-cli
Version:
Create coverage badges from coverage reports. Using GitHub Actions and GitHub Workflow CPU time (no 3rd parties servers).
46 lines • 2.58 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const core_1 = require("@actions/core");
const badges_1 = require("./badges");
;
(async () => {
try {
const { version } = require('../package.json');
(0, core_1.info)(`coverage-badges-cli v\x1b[32;1m${version}\x1b[0m`);
const output = path_1.default.resolve(process.cwd(), (0, core_1.getInput)('output') || 'coverage/badges.svg');
const source = path_1.default.resolve(process.cwd(), (0, core_1.getInput)('source') || 'coverage/coverage-summary.json');
const label = (0, core_1.getInput)('label') || 'coverage';
const labelColor = (0, core_1.getInput)('labelColor') || '555';
const color = (0, core_1.getInput)('color');
const scale = Number((0, core_1.getInput)('scale') || 1) || 1;
const jsonPath = (0, core_1.getInput)('jsonPath') || 'total.statements.pct';
const style = ((0, core_1.getInput)('style') || 'classic');
fs_extra_1.default.ensureDirSync(path_1.default.dirname(output));
if (!fs_extra_1.default.existsSync(source)) {
(0, core_1.setFailed)(`File \x1b[31m${source}\x1b[0m does not exist.\n please specify the file directory\n\x1b[35mnpm\x1b[0m coverage-badges-cli \x1b[33m--source\x1b[0m coverage/coverage-summary.json`);
return;
}
(0, core_1.info)(`Source Path: \x1b[32;1m${source}\x1b[0m`);
(0, core_1.info)(`Output Path: \x1b[32;1m${output}\x1b[0m`);
const sourceData = fs_extra_1.default.readJSONSync(source);
(0, core_1.startGroup)(`Source Path: \x1b[32;1m${source}\x1b[0m`);
(0, core_1.info)(`${JSON.stringify(sourceData, null, 2)}`);
(0, core_1.endGroup)();
const svgStr = (0, badges_1.badge)({ label, labelColor, color, style, jsonPath, scale }, sourceData);
(0, core_1.setOutput)('svg', svgStr);
(0, core_1.startGroup)(`SVG String: \x1b[32;1m${output}\x1b[0m`);
(0, core_1.info)(`${svgStr}`);
(0, core_1.endGroup)();
fs_extra_1.default.writeFileSync(output, svgStr);
(0, core_1.info)(`\nCreate Coverage Badges: \x1b[32;1m${path_1.default.relative(process.cwd(), output)}\x1b[0m\n`);
}
catch (error) {
(0, core_1.setFailed)(error.message);
}
})();
//# sourceMappingURL=action.js.map