Skip to content
Snippets Groups Projects
Unverified Commit cf7bb322 authored by Michael Kriese's avatar Michael Kriese Committed by GitHub
Browse files

feat(manager/gradle-wrapper): support `binarySource=install` (#16830)

* feat(manager/gradle-wrapper): support `binarySource=install`

* docs: update docs
parent a7a44b32
No related branches found
No related tags found
No related merge requests found
...@@ -143,6 +143,7 @@ Supported tools for dynamic install are: ...@@ -143,6 +143,7 @@ Supported tools for dynamic install are:
- `composer` - `composer`
- `flux` - `flux`
- `gradle-wrapper`
- `jb` - `jb`
- `npm` - `npm`
......
...@@ -13,7 +13,6 @@ import type { UpdateArtifact, UpdateArtifactsResult } from '../types'; ...@@ -13,7 +13,6 @@ import type { UpdateArtifact, UpdateArtifactsResult } from '../types';
import { import {
extraEnv, extraEnv,
getJavaContraint, getJavaContraint,
getJavaVersioning,
gradleWrapperFileName, gradleWrapperFileName,
prepareGradleCommand, prepareGradleCommand,
} from './utils'; } from './utils';
...@@ -88,12 +87,16 @@ export async function updateArtifacts({ ...@@ -88,12 +87,16 @@ export async function updateArtifacts({
logger.debug(`Updating gradle wrapper: "${cmd}"`); logger.debug(`Updating gradle wrapper: "${cmd}"`);
const execOptions: ExecOptions = { const execOptions: ExecOptions = {
docker: { docker: {
image: 'java', image: 'sidecar',
tagConstraint:
config.constraints?.java ?? getJavaContraint(config.currentValue!),
tagScheme: getJavaVersioning(),
}, },
extraEnv, extraEnv,
toolConstraints: [
{
toolName: 'java',
constraint:
config.constraints?.java ?? getJavaContraint(config.currentValue),
},
],
}; };
try { try {
await exec(cmd, execOptions); await exec(cmd, execOptions);
......
...@@ -3,8 +3,8 @@ import { extractGradleVersion, getJavaContraint } from './utils'; ...@@ -3,8 +3,8 @@ import { extractGradleVersion, getJavaContraint } from './utils';
describe('modules/manager/gradle-wrapper/util', () => { describe('modules/manager/gradle-wrapper/util', () => {
describe('getJavaContraint()', () => { describe('getJavaContraint()', () => {
it('return null for global mode', () => { it('return ^8.0.0 for global mode', () => {
expect(getJavaContraint('6')).toBeNull(); expect(getJavaContraint('4')).toBe('^8.0.0');
}); });
it('return ^11.0.0 for docker mode and undefined gradle', () => { it('return ^11.0.0 for docker mode and undefined gradle', () => {
......
...@@ -4,7 +4,6 @@ import { logger } from '../../../logger'; ...@@ -4,7 +4,6 @@ import { logger } from '../../../logger';
import { chmodLocalFile, statLocalFile } from '../../../util/fs'; import { chmodLocalFile, statLocalFile } from '../../../util/fs';
import { newlineRegex, regEx } from '../../../util/regex'; import { newlineRegex, regEx } from '../../../util/regex';
import gradleVersioning from '../../versioning/gradle'; import gradleVersioning from '../../versioning/gradle';
import { id as npmVersioning } from '../../versioning/npm';
import type { GradleVersionExtract } from './types'; import type { GradleVersionExtract } from './types';
export const extraEnv = { export const extraEnv = {
...@@ -51,13 +50,10 @@ export async function prepareGradleCommand( ...@@ -51,13 +50,10 @@ export async function prepareGradleCommand(
* @param gradleVersion current gradle version * @param gradleVersion current gradle version
* @returns A Java semver range * @returns A Java semver range
*/ */
export function getJavaContraint(gradleVersion: string): string | null { export function getJavaContraint(
if (GlobalConfig.get('binarySource') !== 'docker') { gradleVersion: string | null | undefined
// ignore ): string | null {
return null; const major = gradleVersion ? gradleVersioning.getMajor(gradleVersion) : null;
}
const major = gradleVersioning.getMajor(gradleVersion);
if (major && major >= 7) { if (major && major >= 7) {
return '^16.0.0'; return '^16.0.0';
} }
...@@ -68,10 +64,6 @@ export function getJavaContraint(gradleVersion: string): string | null { ...@@ -68,10 +64,6 @@ export function getJavaContraint(gradleVersion: string): string | null {
return '^11.0.0'; return '^11.0.0';
} }
export function getJavaVersioning(): string {
return npmVersioning;
}
// https://regex101.com/r/IcOs7P/1 // https://regex101.com/r/IcOs7P/1
const DISTRIBUTION_URL_REGEX = regEx( const DISTRIBUTION_URL_REGEX = regEx(
'^(?:distributionUrl\\s*=\\s*)(?<url>\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)-(?<type>bin|all)\\.zip)\\s*$' '^(?:distributionUrl\\s*=\\s*)(?<url>\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)-(?<type>bin|all)\\.zip)\\s*$'
......
...@@ -53,6 +53,11 @@ const allToolConfig: Record<string, ToolConfig> = { ...@@ -53,6 +53,11 @@ const allToolConfig: Record<string, ToolConfig> = {
depName: 'helm/helm', depName: 'helm/helm',
versioning: semverVersioningId, versioning: semverVersioningId,
}, },
java: {
datasource: 'adoptium-java',
depName: 'java',
versioning: npmVersioningId,
},
jb: { jb: {
datasource: 'github-releases', datasource: 'github-releases',
depName: 'jsonnet-bundler/jsonnet-bundler', depName: 'jsonnet-bundler/jsonnet-bundler',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment