projen
Version:
CDK for software projects
35 lines • 4.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tag = tag;
const fs_1 = require("fs");
const path_1 = require("path");
const utils = require("../util");
/**
* 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 git = (cmd) => utils.exec(`git ${cmd}`, { cwd: cwd });
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}`);
}
git(`tag ${releaseTag} -a -F ${changelogFilePath}`);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLXZlcnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVsZWFzZS90YWctdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9DQSxrQkFxQkM7QUF6REQsMkJBQWdDO0FBQ2hDLCtCQUE0QjtBQUM1QixpQ0FBaUM7QUFzQmpDOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQUUsT0FBbUI7SUFDeEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLE1BQU0sa0JBQWtCLEdBQUcsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3RCxNQUFNLGlCQUFpQixHQUFHLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkQsSUFBSSxDQUFDLElBQUEsZUFBVSxFQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLFVBQVUsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFdEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQU8sVUFBVSxVQUFVLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhZ09wdGlvbnMge1xuICAvKipcbiAgICogUGF0aCB0byByZWxlYXNlIHRhZyBmaWxlIGhvdXNpbmcgdGhlIHJlbGVhc2UgdmVyc2lvbi5cbiAgICpcbiAgICogUmVsYXRpdmUgdG8gY3dkLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgZGlzdC9yZWxlYXNlVGFnLnR4dGBcbiAgICovXG4gIHJlYWRvbmx5IHJlbGVhc2VUYWdGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gcmVsZWFzZS1zcGVjaWZpYyBjaGFuZ2Vsb2cgZmlsZS5cbiAgICpcbiAgICogUmVsYXRpdmUgdG8gY3dkLlxuICAgKlxuICAgKiBAZXhhbXBsZSBgZGlzdC9jaGFuZ2Vsb2cubWRgXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2Vsb2c6IHN0cmluZztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhbiBhbm5vdGF0ZWQgcmVsZWFzZSB0YWcgdXNpbmcgdmVyc2lvbiBhbmQgY2hhbmdlbG9nIGZpbGVzLlxuICpcbiAqIFRoZSB0YWcgd2lsbCBiZSBub3JtYWxpemVkIHRvIHRoZSBmb3JtYXQgXCJ2PHZlcnNpb24+XCIgd2hlcmUgdmVyc2lvbiBjb21lc1xuICogZnJvbSB0aGUgcHJvdmlkZWQgdmVyc2lvbiBmaWxlLlxuICpcbiAqIFRoZSB0YWcgYW5ub3RhdGlvbiBtZXNzYWdlIHdpbGwgYmUgc2V0IHRvIHRoZSBjb250ZW50IG9mIHRoZSBwcm92aWRlZCByZWxlYXNlXG4gKiBjaGFuZ2Vsb2cgZmlsZS5cbiAqXG4gKiBAcGFyYW0gY3dkIHdvcmtpbmcgZGlyZWN0b3J5IChnaXQgcmVwb3NpdG9yeSlcbiAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRhZyhjd2Q6IHN0cmluZywgb3B0aW9uczogVGFnT3B0aW9ucykge1xuICBjb25zdCBnaXQgPSAoY21kOiBzdHJpbmcpID0+IHV0aWxzLmV4ZWMoYGdpdCAke2NtZH1gLCB7IGN3ZDogY3dkIH0pO1xuXG4gIGNvbnN0IHJlbGVhc2VUYWdGaWxlUGF0aCA9IGpvaW4oY3dkLCBvcHRpb25zLnJlbGVhc2VUYWdGaWxlKTtcbiAgY29uc3QgY2hhbmdlbG9nRmlsZVBhdGggPSBqb2luKGN3ZCwgb3B0aW9ucy5jaGFuZ2Vsb2cpO1xuXG4gIGlmICghZXhpc3RzU3luYyhyZWxlYXNlVGFnRmlsZVBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyByZWxlYXNlIHRhZyBmaWxlIHByZXNlbnQgYXQgJHtyZWxlYXNlVGFnRmlsZVBhdGh9YCk7XG4gIH1cblxuICBpZiAoIWV4aXN0c1N5bmMoY2hhbmdlbG9nRmlsZVBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBjaGFuZ2Vsb2cgZmlsZSBwcmVzZW50IGF0ICR7Y2hhbmdlbG9nRmlsZVBhdGh9YCk7XG4gIH1cblxuICBsZXQgcmVsZWFzZVRhZyA9IChhd2FpdCB1dGlscy50cnlSZWFkRmlsZShyZWxlYXNlVGFnRmlsZVBhdGgpKS50cmltKCk7XG5cbiAgaWYgKCFyZWxlYXNlVGFnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyB2ZXJzaW9uIHByZXNlbnQgaW4gZmlsZSBhdCAke3JlbGVhc2VUYWdGaWxlUGF0aH1gKTtcbiAgfVxuXG4gIGdpdChgdGFnICR7cmVsZWFzZVRhZ30gLWEgLUYgJHtjaGFuZ2Vsb2dGaWxlUGF0aH1gKTtcbn1cbiJdfQ==