Skip to content
Snippets Groups Projects
Unverified Commit 90a724f2 authored by bjuraga's avatar bjuraga Committed by GitHub
Browse files

feat(nuget): implement missing packageFileVersion (#17995)

parent a77a452f
No related branches found
Tags 37.413.0
No related merge requests found
......@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
<Version>0.1.0</Version>
<Version>0.2.0</Version>
</PropertyGroup>
<ItemGroup>
......
......@@ -36,6 +36,20 @@ describe('modules/manager/nuget/extract', () => {
expect(res?.deps).toHaveLength(1);
});
it('extracts package file version', async () => {
const packageFile = 'sample.csproj';
const sample = Fixtures.get(packageFile);
const res = await extractPackageFile(sample, packageFile, config);
expect(res?.packageFileVersion).toBe('0.1.0');
});
it('does not fail on package file without version', async () => {
const packageFile = 'single-project-file/single.csproj';
const sample = Fixtures.get(packageFile);
const res = await extractPackageFile(sample, packageFile, config);
expect(res?.packageFileVersion).toBeUndefined();
});
it('extracts all dependencies', async () => {
const packageFile = 'sample.csproj';
const sample = Fixtures.get(packageFile);
......@@ -68,6 +82,7 @@ describe('modules/manager/nuget/extract', () => {
],
},
],
packageFileVersion: '0.1.0',
});
});
......@@ -88,6 +103,7 @@ describe('modules/manager/nuget/extract', () => {
],
},
],
packageFileVersion: '0.1.0',
});
});
......@@ -108,6 +124,7 @@ describe('modules/manager/nuget/extract', () => {
],
},
],
packageFileVersion: '0.1.0',
});
});
......@@ -124,6 +141,7 @@ describe('modules/manager/nuget/extract', () => {
depType: 'nuget',
},
],
packageFileVersion: '0.1.0',
});
});
......@@ -140,6 +158,7 @@ describe('modules/manager/nuget/extract', () => {
depType: 'nuget',
},
],
packageFileVersion: '0.1.0',
});
});
......@@ -176,6 +195,7 @@ describe('modules/manager/nuget/extract', () => {
registryUrls: ['https://contoso.com/packages/'],
},
],
packageFileVersion: '0.1.0',
});
});
......@@ -197,6 +217,7 @@ describe('modules/manager/nuget/extract', () => {
],
},
],
packageFileVersion: '0.1.0',
});
expect(
await extractPackageFile(otherContents, otherPackageFile, config)
......@@ -213,6 +234,7 @@ describe('modules/manager/nuget/extract', () => {
],
},
],
packageFileVersion: '0.2.0',
});
});
......
......@@ -119,16 +119,18 @@ export async function extractPackageFile(
}
let deps: PackageDependency[] = [];
let packageFileVersion = undefined;
try {
const parsedXml = new XmlDocument(content);
deps = extractDepsFromXml(parsedXml).map((dep) => ({
...dep,
...(registryUrls && { registryUrls }),
}));
packageFileVersion = parsedXml.valueWithPath('PropertyGroup.Version');
} catch (err) {
logger.debug({ err }, `Failed to parse ${packageFile}`);
}
const res: PackageFile = { deps };
const res: PackageFile = { deps, packageFileVersion };
const lockFileName = getSiblingFileName(packageFile, 'packages.lock.json');
// istanbul ignore if
if (await localPathExists(lockFileName)) {
......
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