diff --git a/docs/usage/self-hosted-configuration.md b/docs/usage/self-hosted-configuration.md index 8247faa8f5c9ca5d371e480091502071c3d83630..80c151a4b25ab1a6540944e5efa23b44f6e3ccc0 100644 --- a/docs/usage/self-hosted-configuration.md +++ b/docs/usage/self-hosted-configuration.md @@ -143,6 +143,7 @@ Supported tools for dynamic install are: - `composer` - `flux` +- `gradle-wrapper` - `jb` - `npm` diff --git a/lib/modules/manager/gradle-wrapper/artifacts.ts b/lib/modules/manager/gradle-wrapper/artifacts.ts index 220edc5eb36a8b594d3bea60830bf2d3cbff111a..cc4c99f7100bea5562057ba56df05d6be2a54d11 100644 --- a/lib/modules/manager/gradle-wrapper/artifacts.ts +++ b/lib/modules/manager/gradle-wrapper/artifacts.ts @@ -13,7 +13,6 @@ import type { UpdateArtifact, UpdateArtifactsResult } from '../types'; import { extraEnv, getJavaContraint, - getJavaVersioning, gradleWrapperFileName, prepareGradleCommand, } from './utils'; @@ -88,12 +87,16 @@ export async function updateArtifacts({ logger.debug(`Updating gradle wrapper: "${cmd}"`); const execOptions: ExecOptions = { docker: { - image: 'java', - tagConstraint: - config.constraints?.java ?? getJavaContraint(config.currentValue!), - tagScheme: getJavaVersioning(), + image: 'sidecar', }, extraEnv, + toolConstraints: [ + { + toolName: 'java', + constraint: + config.constraints?.java ?? getJavaContraint(config.currentValue), + }, + ], }; try { await exec(cmd, execOptions); diff --git a/lib/modules/manager/gradle-wrapper/util.spec.ts b/lib/modules/manager/gradle-wrapper/util.spec.ts index 108d2dde6f71019498e46aebb720e2fa0995d576..384ca87531f14c2cc96b7c79520f12654238f8b0 100644 --- a/lib/modules/manager/gradle-wrapper/util.spec.ts +++ b/lib/modules/manager/gradle-wrapper/util.spec.ts @@ -3,8 +3,8 @@ import { extractGradleVersion, getJavaContraint } from './utils'; describe('modules/manager/gradle-wrapper/util', () => { describe('getJavaContraint()', () => { - it('return null for global mode', () => { - expect(getJavaContraint('6')).toBeNull(); + it('return ^8.0.0 for global mode', () => { + expect(getJavaContraint('4')).toBe('^8.0.0'); }); it('return ^11.0.0 for docker mode and undefined gradle', () => { diff --git a/lib/modules/manager/gradle-wrapper/utils.ts b/lib/modules/manager/gradle-wrapper/utils.ts index 8fb41e5753ff73afe625d03025c4d5f19677f016..ff3ff289369b641236e2daf93ee7c340770e1a49 100644 --- a/lib/modules/manager/gradle-wrapper/utils.ts +++ b/lib/modules/manager/gradle-wrapper/utils.ts @@ -4,7 +4,6 @@ import { logger } from '../../../logger'; import { chmodLocalFile, statLocalFile } from '../../../util/fs'; import { newlineRegex, regEx } from '../../../util/regex'; import gradleVersioning from '../../versioning/gradle'; -import { id as npmVersioning } from '../../versioning/npm'; import type { GradleVersionExtract } from './types'; export const extraEnv = { @@ -51,13 +50,10 @@ export async function prepareGradleCommand( * @param gradleVersion current gradle version * @returns A Java semver range */ -export function getJavaContraint(gradleVersion: string): string | null { - if (GlobalConfig.get('binarySource') !== 'docker') { - // ignore - return null; - } - - const major = gradleVersioning.getMajor(gradleVersion); +export function getJavaContraint( + gradleVersion: string | null | undefined +): string | null { + const major = gradleVersion ? gradleVersioning.getMajor(gradleVersion) : null; if (major && major >= 7) { return '^16.0.0'; } @@ -68,10 +64,6 @@ export function getJavaContraint(gradleVersion: string): string | null { return '^11.0.0'; } -export function getJavaVersioning(): string { - return npmVersioning; -} - // https://regex101.com/r/IcOs7P/1 const DISTRIBUTION_URL_REGEX = regEx( '^(?:distributionUrl\\s*=\\s*)(?<url>\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)-(?<type>bin|all)\\.zip)\\s*$' diff --git a/lib/util/exec/buildpack.ts b/lib/util/exec/buildpack.ts index 8a456a98ca28a29d8046704b101d8d6bf437607c..09c94432c48ced8344762fd4d0c3ce3382615862 100644 --- a/lib/util/exec/buildpack.ts +++ b/lib/util/exec/buildpack.ts @@ -53,6 +53,11 @@ const allToolConfig: Record<string, ToolConfig> = { depName: 'helm/helm', versioning: semverVersioningId, }, + java: { + datasource: 'adoptium-java', + depName: 'java', + versioning: npmVersioningId, + }, jb: { datasource: 'github-releases', depName: 'jsonnet-bundler/jsonnet-bundler',