@process-engine/ci_tools
Version:
CI tools for process-engine.io
62 lines (59 loc) • 2.57 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.printHelp = exports.getShortDoc = exports.run = void 0;
const yargsParser = require("yargs-parser");
const git_1 = require("../git/git");
const package_version_1 = require("../versions/package_version");
const setup_git_and_npm_connections_1 = require("./internal/setup-git-and-npm-connections");
const shell_1 = require("../cli/shell");
const printMultiLineString_1 = require("../cli/printMultiLineString");
const notifier_1 = require("../slack/notifier");
const create_release_announcement_1 = require("./internal/create-release-announcement");
const COMMAND_NAME = 'publish-releasenotes-on-slack';
const BADGE = `[${COMMAND_NAME}]\t`;
const DEFAULT_MODE = 'node';
const DOC = `
Publishes the releasenotes for the current version on slack.
To use this command, an incoming webhook for slack is required and must be configured as an environment variable named 'SLACK_WEBHOOK'.
OPTIONS
--mode sets the package mode [dotnet, node, python] (default: node)
`;
// DOC: see above
async function run(...args) {
const argv = yargsParser(args, { alias: { help: ['h'] }, default: { mode: DEFAULT_MODE } });
const mode = argv.mode;
(0, setup_git_and_npm_connections_1.setupGit)();
await printInfo(mode);
annotatedSh('git config user.name');
annotatedSh('git config user.email');
const releasenotes = await (0, create_release_announcement_1.createReleaseAnnouncement)(mode);
await (0, notifier_1.sendSlackMessage)(releasenotes);
return true;
}
exports.run = run;
function getShortDoc() {
return DOC.trim().split('\n')[0];
}
exports.getShortDoc = getShortDoc;
function printHelp() {
console.log(`Usage: ci_tools ${COMMAND_NAME} [--mode <MODE>]`);
console.log('');
console.log(DOC.trim());
}
exports.printHelp = printHelp;
function annotatedSh(cmd) {
console.log(`${BADGE}|>>> ${cmd}`);
const output = (0, shell_1.sh)(cmd);
(0, printMultiLineString_1.printMultiLineString)(output, `${BADGE}| `);
return output;
}
async function printInfo(mode) {
const packageVersion = await (0, package_version_1.getPackageVersion)(mode);
const packageVersionTag = await (0, package_version_1.getPackageVersionTag)(mode);
const branchName = (0, git_1.getGitBranch)();
console.log(`${BADGE}packageVersion:`, packageVersion);
console.log(`${BADGE}packageVersionTag:`, packageVersionTag);
console.log(`${BADGE}branchName:`, branchName);
console.log('');
}
//# sourceMappingURL=publish-releasenotes-on-slack.js.map
;