From d636abae840af6bb5662f8ed1941a4996ffd9e7c Mon Sep 17 00:00:00 2001 From: jeho <17126497+j-zimnowoda@users.noreply.github.com> Date: Mon, 16 Dec 2024 09:13:05 +0100 Subject: [PATCH] ci: update chart version index for a single chart (#1867) --- ci/src/update-helm-chart-deps.mjs | 32 ++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/ci/src/update-helm-chart-deps.mjs b/ci/src/update-helm-chart-deps.mjs index 79816b0861..7679f93e99 100755 --- a/ci/src/update-helm-chart-deps.mjs +++ b/ci/src/update-helm-chart-deps.mjs @@ -7,6 +7,21 @@ import yaml from 'js-yaml' import semver from 'semver' import { $ } from 'zx' +export function isVersionApplicable(currentVersion, version, allowedUpgradeType) { + if (semver.lte(version, currentVersion)) { + return false // Ignore versions that are <= current version + } + if (allowedUpgradeType === 'patch') { + return semver.diff(currentVersion, version) === 'patch' + } + if (allowedUpgradeType === 'minor') { + const isMinorOrPatch = + semver.diff(currentVersion, version) === 'patch' || semver.diff(currentVersion, version) === 'minor' + return isMinorOrPatch + } + return true // Default: Allow all upgrades +} + async function main() { config() const env = envalid.cleanEnv(process.env, { @@ -44,6 +59,7 @@ async function main() { } for (const dependency of chart.dependencies) { + const currentDependencyVersion = dependency.version if (dependencyNameFilter.length != 0 && !dependencyNameFilter.includes(dependency.name)) { console.log( `Skipping updates for dependency: ${dependency.name} due to dependencyNameFilter: ${dependencyNameFilter} `, @@ -70,18 +86,7 @@ async function main() { // Filter versions for allowed upgrades (minor/patch) const currentVersion = dependency.version const filteredVersions = allVersions.filter((version) => { - if (semver.lte(version, currentVersion)) { - return false // Ignore versions that are <= current version - } - if (allowedUpgradeType === 'patch') { - return semver.diff(currentVersion, version) === 'patch' - } - if (allowedUpgradeType === 'minor') { - const isMinorOrPatch = - semver.diff(currentVersion, version) === 'patch' || semver.diff(currentVersion, version) === 'minor' - return isMinorOrPatch - } - return true // Default: Allow all upgrades + return isVersionApplicable(currentVersion, version, allowedUpgradeType) }) if (!filteredVersions.length) { @@ -143,8 +148,9 @@ async function main() { } } catch (error) { console.error('Error updating dependencies:', error) - continue } finally { + // restore this version so it does not populate to the next chart update + dependency.version = currentDependencyVersion if (ciCreateFeatureBranch) { // Reset to the main branch for the next dependency await $`git checkout ${baseBranch}`