From 25671018ad4a809a1b52667a2343333f66f5808c Mon Sep 17 00:00:00 2001 From: Michael Kriese Date: Thu, 16 May 2024 09:09:36 +0200 Subject: [PATCH] fix: limit versioning --- .../presets/internal/workarounds.spec.ts | 26 ++++++++++++++++--- lib/config/presets/internal/workarounds.ts | 2 ++ 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/config/presets/internal/workarounds.spec.ts b/lib/config/presets/internal/workarounds.spec.ts index 1cc42df3de80e3..f0d8440bbb9917 100644 --- a/lib/config/presets/internal/workarounds.spec.ts +++ b/lib/config/presets/internal/workarounds.spec.ts @@ -5,7 +5,12 @@ describe('config/presets/internal/workarounds', () => { describe('bitnamiDockerImageVersioning', () => { const versioning = presets.bitnamiDockerImageVersioning.packageRules![0] .versioning as string; - const re = regEx(versioning.substring(6)); + const versioningRe = regEx(versioning.substring(6)); + const matchCurrentValue = presets.bitnamiDockerImageVersioning + .packageRules![0].matchCurrentValue as string; + const matchCurrentValueRe = regEx( + matchCurrentValue.substring(1, matchCurrentValue.length - 1), + ); it.each` input | expected @@ -18,8 +23,23 @@ describe('config/presets/internal/workarounds', () => { ${'1.24.0'} | ${true} ${'1.24.0-debian-12'} | ${true} ${'1.24.0-debian-12-r24'} | ${true} - `('matches("$input") == "$expected"', ({ input, expected }) => { - expect(re.test(input)).toEqual(expected); + `('versioning("$input") == "$expected"', ({ input, expected }) => { + expect(versioningRe.test(input)).toEqual(expected); + }); + + it.each` + input | expected + ${'latest'} | ${false} + ${'20'} | ${false} + ${'20-debian'} | ${false} + ${'20-debian-12'} | ${true} + ${'1.24'} | ${false} + ${'1.24-debian-12'} | ${true} + ${'1.24.0'} | ${false} + ${'1.24.0-debian-12'} | ${true} + ${'1.24.0-debian-12-r24'} | ${true} + `('matchCurrentValue("$input") == "$expected"', ({ input, expected }) => { + expect(matchCurrentValueRe.test(input)).toEqual(expected); }); }); }); diff --git a/lib/config/presets/internal/workarounds.ts b/lib/config/presets/internal/workarounds.ts index b5ad63ecb631f3..158515222e43b0 100644 --- a/lib/config/presets/internal/workarounds.ts +++ b/lib/config/presets/internal/workarounds.ts @@ -29,6 +29,8 @@ export const presets: Record = { description: 'Use custom regex versioning for bitnami images', packageRules: [ { + matchCurrentValue: + '/^(?\\d+)(?:\\.(?\\d+)(?:\\.(?\\d+))?)?-(?.+)-(?\\d+)(?:-r(?\\d+))?$/', matchDatasources: ['docker'], matchPackagePrefixes: [ 'bitnami/',