diff --git a/lib/modules/datasource/helm/index.ts b/lib/modules/datasource/helm/index.ts index 2d719d5ebd3b3c5f37a4dae3040110b32b0ae585..81372fe73b154641f7215cd522ad578eb6769957 100644 --- a/lib/modules/datasource/helm/index.ts +++ b/lib/modules/datasource/helm/index.ts @@ -1,6 +1,5 @@ import is from '@sindresorhus/is'; import { load } from 'js-yaml'; -import { gt } from 'semver'; import { logger } from '../../../logger'; import { cache } from '../../../util/cache/package/decorator'; import { ensureTrailingSlash } from '../../../util/url'; @@ -63,9 +62,17 @@ export class HelmDatasource extends Datasource { } const result: HelmRepositoryData = {}; for (const [name, releases] of Object.entries(doc.entries)) { - const latestRelease = releases.sort((r0, r1) => - gt(r0.version, r1.version) ? -1 : 1 - )[0]; + let latestRelease = releases[releases.length - 1]; + const sortedReleases = releases + .filter(({ version }) => helmVersioning.api.isValid(version)) + .sort((r0, r1) => + helmVersioning.api.sortVersions(r0.version, r1.version) + ); + const latestSortedRelease = sortedReleases[sortedReleases.length - 1]; + if (latestSortedRelease) { + latestRelease = latestSortedRelease; + } + const { sourceUrl, sourceDirectory } = findSourceUrl(latestRelease); result[name] = { homepage: latestRelease.home,