@process-engine/ci_tools
Version:
CI tools for process-engine.io
73 lines • 3.1 kB
JavaScript
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
;