UNPKG

@jwpkg/gitversion

Version:

Gitversion is a complete customizable git-based release management system

146 lines 14.2 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) { if (Array.isArray(packFile)) { for (const file of packFile) { const fullName = (0, path_1.join)(folder, file); 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, }; } if (typeof packFile === 'string') { 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 if (typeof packFile === 'object' && packFile !== null) { // If packFile is an object, we assume it's a record of files const files = {}; for (const [key, value] of Object.entries(packFile)) { const fullName = (0, path_1.join)(folder, value); 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)})`); files[key] = value; } return { [packManager.ident]: files, }; } else { return {}; } } 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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