UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

77 lines 6.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TagCommand = void 0; const clipanion_1 = require("clipanion"); const application_1 = require("../core/application"); const pack_artifact_1 = require("../core/pack-artifact"); const context_1 = require("./context"); class TagCommand extends context_1.GitVersionCommand { static paths = [ ['tag'], ]; push = clipanion_1.Option.Boolean('--push', true, { description: 'Push the tags to the remote repository' }); force = clipanion_1.Option.Boolean('--force', false, { description: 'Force tagging ignore git status' }); dryRun = clipanion_1.Option.Boolean('--dry-run', false); async execute() { const application = await application_1.Application.init(this.context.application, { dryRun: this.dryRun, }); const context = { ...this.context, application, }; const { project, git, configuration, logger } = application; if (!project) { return 1; } let packManifest = await pack_artifact_1.PackArtifact.load(configuration, git); if (!packManifest) { logger.reportInfo('No pack manifest found. Running pack on current workspace'); const result = await this.cli.run(['pack'], context); if (result !== 0) { return result; } packManifest = await pack_artifact_1.PackArtifact.load(configuration, git); } else { logger.reportInfo('Pack manifest found. Publishing from pack'); } if (packManifest === null) { logger.reportError('Still invalid pack manifest. Breaking off'); return 1; } if (!(await packManifest.validateGitStatusForPublish()) && !this.force) { logger.reportWarning('Git status has changed since pack. Please make sure you have a valid flow', true); console.log('Git status output:'); console.log(await git.exec('status', '--porcelain')); } const packedPackages = packManifest.packages; if (packedPackages.length > 0) { await this.addTags(packedPackages, git, logger); if (this.push) { await git.push(); } else { logger.reportInfo('Skipping push step'); } } else { logger.reportWarning('Nothing to tag'); } return 0; } async addTags(packages, git, logger) { const section = logger.beginSection('Tagging step'); const allTags = packages.map(p => p.tag); const tags = allTags.filter((tag, pos) => { return allTags.indexOf(tag) == pos; }); const commands = tags.map(async (tag) => { await git.addTag(tag, 'Tag added by gitversion'); }); await Promise.all(commands); logger.endSection(section); } } exports.TagCommand = TagCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3RhZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBbUM7QUFFbkMscURBQWtEO0FBR2xELHlEQUFvRTtBQUVwRSx1Q0FBOEM7QUFFOUMsTUFBYSxVQUFXLFNBQVEsMkJBQWlCO0lBQy9DLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixDQUFDLEtBQUssQ0FBQztLQUNSLENBQUM7SUFFRixJQUFJLEdBQUcsa0JBQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSx3Q0FBd0MsRUFBRSxDQUFDLENBQUM7SUFDakcsS0FBSyxHQUFHLGtCQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxXQUFXLEVBQUUsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDO0lBQzdGLE1BQU0sR0FBRyxrQkFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFNUMsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLFdBQVcsR0FBRyxNQUFNLHlCQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ25FLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNwQixDQUFDLENBQUM7UUFFSCxNQUFNLE9BQU8sR0FBRztZQUNkLEdBQUcsSUFBSSxDQUFDLE9BQU87WUFDZixXQUFXO1NBQ1osQ0FBQztRQUVGLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFFNUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBRUQsSUFBSSxZQUFZLEdBQUcsTUFBTSw0QkFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFD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