From ac5ec2b7231b0860217584dc4ab2a3026c692ea5 Mon Sep 17 00:00:00 2001 From: Adam Setch <adam.setch@outlook.com> Date: Tue, 4 Oct 2022 11:53:51 -0400 Subject: [PATCH] feat(java): add workaround to limit releases to java LTS versions (#18007) --- docs/usage/java.md | 14 ++++++++++++++ lib/config/presets/internal/workarounds.ts | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/docs/usage/java.md b/docs/usage/java.md index 164868f745..9b7b5e209c 100644 --- a/docs/usage/java.md +++ b/docs/usage/java.md @@ -8,6 +8,20 @@ description: Java versions support in Renovate Renovate can update Gradle and Maven dependencies. This includes libraries and plugins as well as the Gradle Wrapper. +## LTS releases + +The `config:base` preset includes the `workarounds:javaLTSVersions` preset. +The workaround limits Renovate to upgrade to LTS versions of the Java runtime only. + +If you want Renovate to offer all `major` Java updates then add `workarounds:javaLTSVersions` to the `ignorePreset` array: + +``` +{ + "extends": ["config:base"], + "ignorePresets": ["workarounds:javaLTSVersions"] +} +``` + ## Gradle Renovate detects versions that are specified in a string `'group:artifact:version'` and those specified in a map `(group:groupName, name:ArtifactName, version:Version)`. diff --git a/lib/config/presets/internal/workarounds.ts b/lib/config/presets/internal/workarounds.ts index 0e9c2028d5..5ce11b2c73 100644 --- a/lib/config/presets/internal/workarounds.ts +++ b/lib/config/presets/internal/workarounds.ts @@ -14,6 +14,7 @@ export const presets: Record<string, Preset> = { 'workarounds:reduceRepologyServerLoad', 'workarounds:doNotUpgradeFromAlpineStableToEdge', 'workarounds:supportRedHatImageVersion', + 'workarounds:javaLTSVersions', ], ignoreDeps: [], }, @@ -118,4 +119,24 @@ export const presets: Record<string, Preset> = { }, ], }, + javaLTSVersions: { + description: 'Limit Java runtime versions to LTS releases', + packageRules: [ + { + description: + 'Limit Java runtime versions to LTS releases. To receive all major releases add `javaLTSVersions` to the `ignorePresets` array.', + matchDatasources: ['docker', 'adoptium-java'], + matchPackageNames: [ + 'eclipse-temurin', + 'amazoncorretto', + 'adoptopenjdk', + 'openjdk', + 'java', + ], + versioning: + 'regex:^(?<major>\\d+)?(\\.(?<minor>\\d+))?(\\.(?<patch>\\d+))?([\\._+](?<build>\\d+))?(-(?<compatibility>.*))?$', + allowedVersions: '/^(?:8|11|17|21|25|29)(?:\\.|$)/', + }, + ], + }, }; -- GitLab