in frontend/app/getbuilds.ts [130:162]
function compareVersionResults(
deployment: DeployedImageInfo,
available: BuildInfo
): string {
if (!available.built_image) {
return CompareVersionResult.NOTHING_AVAILABLE;
}
try {
const numericVersionAvailable = parseInt(available.built_image.version);
if (Number.isNaN(numericVersionAvailable))
return CompareVersionResult.NON_NUMERIC;
const relevantDeployedImages = deployment.deployedImages.filter(
(img) => img.imageName == available.built_image?.imageName
);
if (relevantDeployedImages.length == 0)
return CompareVersionResult.NOTHING_AVAILABLE;
const numericVersionDeployed = parseInt(relevantDeployedImages[0].version);
if (Number.isNaN(numericVersionDeployed))
return CompareVersionResult.NON_NUMERIC;
if (numericVersionAvailable == numericVersionDeployed) {
return CompareVersionResult.SAME;
} else if (numericVersionDeployed < numericVersionAvailable) {
return CompareVersionResult.NEEDS_UPDATE;
} else {
return CompareVersionResult.DEPLOYMENT_AHEAD;
}
} catch (e) {
return CompareVersionResult.NON_NUMERIC;
}
}