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

fix(gradle-wrapper): parse prerelease and milestones (#9261)

parent 102db3d7
No related branches found
No related tags found
No related merge requests found
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-milestone-1-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7-rc-1-bin.zip
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`lib/manager/gradle-wrapper/extract extractPackageFile() extracts all version line 1`] = `
exports[`manager/gradle-wrapper/extract extractPackageFile() extracts all version line 1`] = `
Array [
Object {
"currentValue": "4.10.3",
......@@ -11,7 +11,7 @@ Array [
]
`;
exports[`lib/manager/gradle-wrapper/extract extractPackageFile() extracts bin version line 1`] = `
exports[`manager/gradle-wrapper/extract extractPackageFile() extracts bin version line 1`] = `
Array [
Object {
"currentValue": "4.8",
......@@ -22,7 +22,18 @@ Array [
]
`;
exports[`lib/manager/gradle-wrapper/extract extractPackageFile() handles whitespace 1`] = `
exports[`manager/gradle-wrapper/extract extractPackageFile() extracts prerelease version line 1`] = `
Array [
Object {
"currentValue": "7.0-milestone-1",
"datasource": "gradle-version",
"depName": "gradle",
"versioning": "gradle",
},
]
`;
exports[`manager/gradle-wrapper/extract extractPackageFile() handles whitespace 1`] = `
Array [
Object {
"currentValue": "4.10.3",
......
import { readFileSync } from 'fs';
import { resolve } from 'upath';
import { getName } from '../../../test/util';
import { extractPackageFile } from './extract';
const propertiesFile1 = readFileSync(
......@@ -10,12 +11,20 @@ const propertiesFile2 = readFileSync(
resolve(__dirname, './__fixtures__/gradle-wrapper-2.properties'),
'utf8'
);
const propertiesFile3 = readFileSync(
resolve(__dirname, './__fixtures__/gradle-wrapper-3.properties'),
'utf8'
);
const propertiesFile4 = readFileSync(
resolve(__dirname, './__fixtures__/gradle-wrapper-4.properties'),
'utf8'
);
const whitespacePropertiesFile = readFileSync(
resolve(__dirname, './__fixtures__/gradle-wrapper-whitespace.properties'),
'utf8'
);
describe('lib/manager/gradle-wrapper/extract', () => {
describe(getName(__filename), () => {
describe('extractPackageFile()', () => {
it('returns null for empty', () => {
expect(extractPackageFile('nothing here')).toBeNull();
......@@ -30,6 +39,18 @@ describe('lib/manager/gradle-wrapper/extract', () => {
const res = extractPackageFile(propertiesFile2);
expect(res.deps).toMatchSnapshot();
});
it('extracts prerelease version line', () => {
const res = extractPackageFile(propertiesFile3);
expect(res.deps).toMatchSnapshot();
expect(res.deps[0].currentValue).toBe('7.0-milestone-1');
});
it('ignores invalid', () => {
const res = extractPackageFile(propertiesFile4);
expect(res).toBeNull();
});
it('handles whitespace', () => {
const res = extractPackageFile(whitespacePropertiesFile);
expect(res.deps).toMatchSnapshot();
......
import * as datasourceGradleVersion from '../../datasource/gradle-version';
import { logger } from '../../logger';
import { regEx } from '../../util/regex';
import * as gradleVersioning from '../../versioning/gradle';
import type { PackageDependency, PackageFile } from '../types';
const DISTRIBUTION_URL_REGEX = /^(?<assignment>distributionUrl\s*=\s*)\S*-(?<version>(\d|\.)+)-(?<type>bin|all)\.zip\s*$/;
// https://regex101.com/r/1GaQ2X/1
const DISTRIBUTION_URL_REGEX = regEx(
'^(?:distributionUrl\\s*=\\s*)\\S*-(?<version>\\d+\\.\\d+(?:\\.\\d+)?(?:-\\w+)*)-(?<type>bin|all)\\.zip\\s*$'
);
export function extractPackageFile(fileContent: string): PackageFile | null {
logger.debug('gradle-wrapper.extractPackageFile()');
......
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