UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

118 lines 11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PackCommand = void 0; const clipanion_1 = require("clipanion"); const colorize_node_1 = require("colorize-node"); const promises_1 = require("fs/promises"); const os_1 = require("os"); const path_1 = require("path"); const queue_promise_1 = __importDefault(require("queue-promise")); const typanion_1 = require("typanion"); const application_1 = require("../core/application"); const bump_manifest_1 = require("../core/bump-manifest"); const format_utils_1 = require("../core/format-utils"); const pack_artifact_1 = require("../core/pack-artifact"); const context_1 = require("./context"); class PackCommand extends context_1.GitVersionCommand { static paths = [ ['pack'], ]; maxConcurrency = clipanion_1.Option.String('-m,--max-concurrency', { validator: (0, typanion_1.cascade)((0, typanion_1.isNumber)(), (0, typanion_1.isAtLeast)(1)), }); async execute() { const application = await application_1.Application.init(this.context.application); const { project, git, configuration, logger } = application; if (!project) { return 1; } const section = logger.beginSection('Pack step'); const bumpManifest = await bump_manifest_1.BumpManifest.load(application); if (!bumpManifest) { logger.reportError('No valid bump file found. Please run bump first'); return 1; } const packManifest = await pack_artifact_1.PackArtifact.new(configuration, git, bumpManifest.gitStatus); if (!packManifest.validateGitStatusWithBump()) { logger.reportWarning(`Git status has changed between ${colorize_node_1.colorize.blue('gitversion bump')} and ${colorize_node_1.colorize.blue('gitversion pack')}. This could be an error`, true); } if (bumpManifest.bumps.length > 0) { const projectBump = bumpManifest.bumps.find(b => b.packageRelativeCwd === '.'); if (projectBump) { packManifest.add(projectBump); } const packFolder = (0, path_1.join)(configuration.stagingFolder, 'pack'); await (0, promises_1.mkdir)(packFolder, { recursive: true, }); const queue = new queue_promise_1.default({ concurrent: this.maxConcurrency ?? (0, os_1.cpus)().length, start: false, }); bumpManifest.bumps.forEach(bump => { queue.enqueue(async () => { const workspace = project.workspaces.find(w => w.relativeCwd === bump.packageRelativeCwd); if (workspace) { await workspace.updateVersion(bump.version); await workspace.updateChangelog(bump.changeLog); await this.execPackCommand(application, workspace, bump, packManifest); } }); }); while (queue.shouldRun) { await queue.dequeue(); } } else { logger.reportWarning('Nothing to pack'); } await packManifest.persist(); if (!packManifest.validateGitStatusDuringPack()) { logger.reportWarning(`Git status has changed during ${colorize_node_1.colorize.blue('gitversion pack')} you should make sure your build artifacts (including gitversion.out) are correctly ignored in .gitignore`, true); } logger.endSection(section); return 0; } async execPackCommand(application, workspace, bump, packManifest) { return application.logger.runSection(`Packing ${(0, format_utils_1.formatPackageName)(bump.packageName)}`, async (logger) => { try { const packCommands = application.packManagers.map(async (packManager) => { const folder = (0, path_1.join)(application.configuration.packFolder, packManager.ident); await (0, promises_1.mkdir)(folder, { recursive: true, }); const packFile = await packManager.pack(workspace, folder); if (packFile) { const fullName = (0, path_1.join)(folder, packFile); const stats = await (0, promises_1.stat)(fullName); logger.reportInfo(`Generated package: ./${(0, path_1.relative)(application.cwd, fullName)} (${(0, format_utils_1.formatFileSize)(stats.size)})`); return { [packManager.ident]: packFile, }; } else { return {}; } }); const files = (await Promise.all(packCommands)).reduce((p, c) => { return { ...p, ...c, }; }, {}); packManifest.add({ packFiles: files, ...bump, }); } catch (error) { logger.reportError(`Error during pack: ${colorize_node_1.colorize.redBright(`${error}`)}`); } }); } } exports.PackCommand = PackCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9wYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHlDQUFtQztBQUNuQyxpREFBeUM7QUFDekMsMENBQTBDO0FBQzFDLDJCQUEwQjtBQUMxQiwrQkFBc0M7QUFDdEMsa0VBQWtDO0FBQ2xDLHVDQUF3RDtBQUV4RCxxREFBZ0U7QUFDaEUseURBQTJEO0FBQzNELHVEQUF5RTtBQUN6RSx5REFBcUQ7QUFHckQsdUNBQThDO0FBRTlDLE1BQWEsV0FBWSxTQUFRLDJCQUFpQjtJQUNoRCxNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsQ0FBQyxNQUFNLENBQUM7S0FDVCxDQUFDO0lBRUYsY0FBYyxHQUFHLGtCQUFNLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFO1FBQ3JELFNBQVMsRUFBRSxJQUFBLGtCQUFPLEVBQUMsSUFBQSxtQkFBUSxHQUFFLEVBQUUsSUFBQSxvQkFBUyxFQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzdDLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxXQUFXLEdBQUcsTUFBTSx5QkFBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRCxNQUFNLFlBQVksR0FBRyxNQUFNLDRCQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixNQUFNLENBQUMs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