UNPKG

@process-engine/ci_tools

Version:
73 lines 3.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getExpectedLatestVersion = exports.incrementVersion = exports.findNextSuffixNumber = exports.PRIMARY_BRANCHES = void 0; const NO_PRE_VERSION = 'NO_PRE_VERSION'; const PRE_VERSION_SUFFIX_MAP = { [process.env.CI_TOOLS_ALPHA_BRANCH || 'alpha']: 'alpha', [process.env.CI_TOOLS_BETA_BRANCH || 'beta']: 'beta', [process.env.CI_TOOLS_STABLE_BRANCH || 'master']: NO_PRE_VERSION }; /** * Primary branches are those branches where numbered pre-versions like `1.2.6-alpha.5` should be published. */ exports.PRIMARY_BRANCHES = Object.keys(PRE_VERSION_SUFFIX_MAP); function findNextSuffixNumber(baseVersion, branchName, tagList) { const latestSuffixNumber = findLatestSuffixNumber(baseVersion, branchName, tagList); if (latestSuffixNumber == null) { return null; } return latestSuffixNumber + 1; } exports.findNextSuffixNumber = findNextSuffixNumber; function findLatestSuffixNumber(baseVersion, branchName, tagList) { const targetVersion = getTargetVersion(baseVersion); const preVersionSuffix = getPreVersionSuffix(branchName); if (preVersionSuffix == null) { return null; } const versionPrefix = `v${targetVersion}-${preVersionSuffix}.`; const existingTags = tagList.split('\n').filter((tag) => tag.trim().indexOf(versionPrefix) === 0); if (existingTags.length === 0) { return 0; } const existingNumbers = existingTags.map((tag) => { const matchData = tag.match(/(\d+)$/); return parseInt(matchData[0]); }); const sortedNumbersDesc = existingNumbers.sort((a, b) => b - a); return sortedNumbersDesc[0]; } function incrementVersion(packageVersion, branchName, gitTagList) { const targetVersion = getTargetVersion(packageVersion); const preVersionSuffix = getPreVersionSuffix(branchName); if (preVersionSuffix === NO_PRE_VERSION) { return targetVersion; } if (preVersionSuffix == null) { return null; } const nextSuffixNumber = findNextSuffixNumber(packageVersion, branchName, gitTagList); return `${targetVersion}-${preVersionSuffix}.${nextSuffixNumber}`; } exports.incrementVersion = incrementVersion; function getExpectedLatestVersion(packageVersion, branchName, gitTagList) { const targetVersion = getTargetVersion(packageVersion); const preVersionSuffix = getPreVersionSuffix(branchName); if (preVersionSuffix === NO_PRE_VERSION) { return targetVersion; } if (preVersionSuffix == null) { return null; } const latestSuffixNumber = findLatestSuffixNumber(packageVersion, branchName, gitTagList); return `${targetVersion}-${preVersionSuffix}.${latestSuffixNumber}`; } exports.getExpectedLatestVersion = getExpectedLatestVersion; function getTargetVersion(baseVersion) { const targetBase = baseVersion.split('-')[0]; return targetBase.trim().replace(/^v/, ''); } function getPreVersionSuffix(branchName) { return PRE_VERSION_SUFFIX_MAP[branchName]; } //# sourceMappingURL=increment_version.js.map