ci: Fix version comparison bug

Auto-publishing had a version comparison bug, causing it to attempt to
republish old versions instead using next avaiable version number.
This commit is contained in:
Dagur Valberg Johannsson 2026-04-14 09:14:28 +02:00
parent fbac14cd08
commit 994853bf8e
No known key found for this signature in database
GPG key ID: FD701804AEE88107
2 changed files with 22 additions and 4 deletions

View file

@ -94,6 +94,14 @@ function getCurrentVersion(packagePath) {
return packageJson.version;
}
function compareVersions(a, b) {
const [aMajor, aMinor, aPatch] = a.split('.').map(Number);
const [bMajor, bMinor, bPatch] = b.split('.').map(Number);
if (aMajor !== bMajor) return aMajor - bMajor;
if (aMinor !== bMinor) return aMinor - bMinor;
return aPatch - bPatch;
}
function bumpVersion(currentVersion, latestNpmVersion) {
const [major, minor, patch] = currentVersion.split('.').map(Number);
@ -102,12 +110,13 @@ function bumpVersion(currentVersion, latestNpmVersion) {
}
const [npmMajor, npmMinor, npmPatch] = latestNpmVersion.split('.').map(Number);
const cmp = compareVersions(currentVersion, latestNpmVersion);
if (currentVersion > latestNpmVersion) {
if (cmp > 0) {
return `${major}.${minor}.${patch + 1}`;
}
if (latestNpmVersion > currentVersion) {
if (cmp < 0) {
return `${npmMajor}.${npmMinor}.${npmPatch + 1}`;
}

View file

@ -78,6 +78,14 @@ function getCurrentVersion(packagePath) {
return packageJson.version;
}
function compareVersions(a, b) {
const [aMajor, aMinor, aPatch] = a.split('.').map(Number);
const [bMajor, bMinor, bPatch] = b.split('.').map(Number);
if (aMajor !== bMajor) return aMajor - bMajor;
if (aMinor !== bMinor) return aMinor - bMinor;
return aPatch - bPatch;
}
function bumpVersion(currentVersion, latestNpmVersion) {
const [major, minor, patch] = currentVersion.split('.').map(Number);
@ -86,12 +94,13 @@ function bumpVersion(currentVersion, latestNpmVersion) {
}
const [npmMajor, npmMinor, npmPatch] = latestNpmVersion.split('.').map(Number);
const cmp = compareVersions(currentVersion, latestNpmVersion);
if (currentVersion > latestNpmVersion) {
if (cmp > 0) {
return `${major}.${minor}.${patch + 1}`;
}
if (latestNpmVersion > currentVersion) {
if (cmp < 0) {
return `${npmMajor}.${npmMinor}.${npmPatch + 1}`;
}