projen
Version:
CDK for software projects
68 lines • 6.25 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.tag = tag;
const fs_1 = require("fs");
const path_1 = require("path");
const utils = __importStar(require("../util"));
const exec_1 = require("../util/exec");
/**
* Generate an annotated release tag using version and changelog files.
*
* The tag will be normalized to the format "v<version>" where version comes
* from the provided version file.
*
* The tag annotation message will be set to the content of the provided release
* changelog file.
*
* @param cwd working directory (git repository)
* @param options options
*/
async function tag(cwd, options) {
const releaseTagFilePath = (0, path_1.join)(cwd, options.releaseTagFile);
const changelogFilePath = (0, path_1.join)(cwd, options.changelog);
if (!(0, fs_1.existsSync)(releaseTagFilePath)) {
throw new Error(`No release tag file present at ${releaseTagFilePath}`);
}
if (!(0, fs_1.existsSync)(changelogFilePath)) {
throw new Error(`No changelog file present at ${changelogFilePath}`);
}
let releaseTag = (await utils.tryReadFile(releaseTagFilePath)).trim();
if (!releaseTag) {
throw new Error(`No version present in file at ${releaseTagFilePath}`);
}
exec_1.git.run(["tag", releaseTag, "-a", "-F", changelogFilePath], { cwd });
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLXZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVsZWFzZS90YWctdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFDQSxrQkFtQkM7QUF4REQsMkJBQWdDO0FBQ2hDLCtCQUE0QjtBQUM1QiwrQ0FBaUM7QUFDakMsdUNBQW1DO0FBc0JuQzs7Ozs7Ozs7Ozs7R0FXRztBQUNJLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLE9BQW1CO0lBQ3hELE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RCxNQUFNLGlCQUFpQixHQUFHLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkQsSUFBSSxDQUFDLElBQUEsZUFBVSxFQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLFVBQVUsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFdEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsVUFBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgZ2l0IH0gZnJvbSBcIi4uL3V0aWwvZXhlY1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhZ09wdGlvbnMge1xuICAvKipcbiAgICogUGF0aCB0byByZWxlYXNlIHRhZyBmaWxlIGhvdXNpbmcgdGhlIHJlbGVhc2UgdmVyc2lvbi5cbiAgICpcbiAgICogUmVsYXRpdmUgdG8gY3dkLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgZGlzdC9yZWxlYXNlVGFnLnR4dGBcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUYWdGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gcmVsZWFzZS1zcGVjaWZpYyBjaGFuZ2Vsb2cgZmlsZS5cbiAgICpcbiAgICogUmVsYXRpdmUgdG8gY3dkLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgZGlzdC9jaGFuZ2Vsb2cubWRgXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2c6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhbm5vdGF0ZWQgcmVsZWFzZSB0YWcgdXNpbmcgdmVyc2lvbiBhbmQgY2hhbmdlbG9nIGZpbGVzLlxuICpcbiAqIFRoZSB0YWcgd2lsbCBiZSBub3JtYWxpemVkIHRvIHRoZSBmb3JtYXQgXCJ2PHZlcnNpb24+XCIgd2hlcmUgdmVyc2lvbiBjb21lc1xuICogZnJvbSB0aGUgcHJvdmlkZWQgdmVyc2lvbiBmaWxlLlxuICpcbiAqIFRoZSB0YWcgYW5ub3RhdGlvbiBtZXNzYWdlIHdpbGwgYmUgc2V0IHRvIHRoZSBjb250ZW50IG9mIHRoZSBwcm92aWRlZCByZWxlYXNlXG4gKiBjaGFuZ2Vsb2cgZmlsZS5cbiAqXG4gKiBAcGFyYW0gY3dkIHdvcmtpbmcgZGlyZWN0b3J5IChnaXQgcmVwb3NpdG9yeSlcbiAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRhZyhjd2Q6IHN0cmluZywgb3B0aW9uczogVGFnT3B0aW9ucykge1xuICBjb25zdCByZWxlYXNlVGFnRmlsZVBhdGggPSBqb2luKGN3ZCwgb3B0aW9ucy5yZWxlYXNlVGFnRmlsZSk7XG4gIGNvbnN0IGNoYW5nZWxvZ0ZpbGVQYXRoID0gam9pbihjd2QsIG9wdGlvbnMuY2hhbmdlbG9nKTtcblxuICBpZiAoIWV4aXN0c1N5bmMocmVsZWFzZVRhZ0ZpbGVQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gcmVsZWFzZSB0YWcgZmlsZSBwcmVzZW50IGF0ICR7cmVsZWFzZVRhZ0ZpbGVQYXRofWApO1xuICB9XG5cbiAgaWYgKCFleGlzdHNTeW5jKGNoYW5nZWxvZ0ZpbGVQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gY2hhbmdlbG9nIGZpbGUgcHJlc2VudCBhdCAke2NoYW5nZWxvZ0ZpbGVQYXRofWApO1xuICB9XG5cbiAgbGV0IHJlbGVhc2VUYWcgPSAoYXdhaXQgdXRpbHMudHJ5UmVhZEZpbGUocmVsZWFzZVRhZ0ZpbGVQYXRoKSkudHJpbSgpO1xuXG4gIGlmICghcmVsZWFzZVRhZykge1xuICAgIHRocm93IG5ldyBFcnJvcihgTm8gdmVyc2lvbiBwcmVzZW50IGluIGZpbGUgYXQgJHtyZWxlYXNlVGFnRmlsZVBhdGh9YCk7XG4gIH1cblxuICBnaXQucnVuKFtcInRhZ1wiLCByZWxlYXNlVGFnLCBcIi1hXCIsIFwiLUZcIiwgY2hhbmdlbG9nRmlsZVBhdGhdLCB7IGN3ZCB9KTtcbn1cbiJdfQ==