mirror of
https://github.com/actions/setup-dotnet.git
synced 2025-08-14 20:55:11 +00:00
Add msbuild.json as problem matcher (#603)
This commit is contained in:
parent
83c0c1a6c8
commit
8b04c36b45
17
.github/msbuild.json
vendored
Normal file
17
.github/msbuild.json
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"problemMatcher": [
|
||||||
|
{
|
||||||
|
"owner": "msbuild",
|
||||||
|
"pattern": [
|
||||||
|
{
|
||||||
|
"regexp": "^([^\\s].*)\\s+:\\s+(error|warning)\\s+([a-zA-Z]+(?<!MSB)\\d+):\\s*(.*?)\\s+\\[(.*?)\\]$",
|
||||||
|
"file": 1,
|
||||||
|
"severity": 2,
|
||||||
|
"code": 3,
|
||||||
|
"message": 4,
|
||||||
|
"fromPath": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
46
__tests__/msbuild.test.ts
Normal file
46
__tests__/msbuild.test.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import msbuildFile from '../.github/msbuild.json';
|
||||||
|
describe('msbuild tests', () => {
|
||||||
|
test('regular expression in msbuild.json is valid', async () => {
|
||||||
|
const regexPattern =
|
||||||
|
msbuildFile['problemMatcher'][0]['pattern'][0]['regexp'];
|
||||||
|
const regexResultsMap = msbuildFile['problemMatcher'][0]['pattern'][0];
|
||||||
|
|
||||||
|
const regex = new RegExp(regexPattern);
|
||||||
|
|
||||||
|
const stringsToMatch = [
|
||||||
|
"/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj : warning NU1904: Package 'System.Text.Encodings.Web' 4.7.0 has a known critical severity vulnerability, https://github.com/advisories/GHSA-ghhp-997w-qr28 [/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj]",
|
||||||
|
"/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj : error NU1904: Package 'System.Text.Encodings.Web' 4.7.0 has a known critical severity vulnerability, https://github.com/advisories/GHSA-ghhp-997w-qr28 [/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj]"
|
||||||
|
];
|
||||||
|
// Expected results are calculated according to the msbuild matcher located in msbuild.json file
|
||||||
|
const expectedResults = [
|
||||||
|
{
|
||||||
|
file: '/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj',
|
||||||
|
severity: 'warning',
|
||||||
|
code: 'NU1904',
|
||||||
|
message:
|
||||||
|
"Package 'System.Text.Encodings.Web' 4.7.0 has a known critical severity vulnerability, https://github.com/advisories/GHSA-ghhp-997w-qr28",
|
||||||
|
fromPath:
|
||||||
|
'/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
file: '/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj',
|
||||||
|
severity: 'error',
|
||||||
|
code: 'NU1904',
|
||||||
|
message:
|
||||||
|
"Package 'System.Text.Encodings.Web' 4.7.0 has a known critical severity vulnerability, https://github.com/advisories/GHSA-ghhp-997w-qr28",
|
||||||
|
fromPath:
|
||||||
|
'/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
stringsToMatch.map((string, index) => {
|
||||||
|
const matchedResultsArray = string.match(regex);
|
||||||
|
for (const propName in expectedResults[index]) {
|
||||||
|
const propertyIndex = regexResultsMap[propName];
|
||||||
|
const expectedPropValue = expectedResults[index][propName];
|
||||||
|
const matchedPropValue = matchedResultsArray![propertyIndex];
|
||||||
|
expect(matchedPropValue).toEqual(expectedPropValue);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, 10000);
|
||||||
|
});
|
1
dist/setup/index.js
vendored
1
dist/setup/index.js
vendored
@ -102523,6 +102523,7 @@ function run() {
|
|||||||
}
|
}
|
||||||
const matchersPath = path_1.default.join(__dirname, '..', '..', '.github');
|
const matchersPath = path_1.default.join(__dirname, '..', '..', '.github');
|
||||||
core.info(`##[add-matcher]${path_1.default.join(matchersPath, 'csc.json')}`);
|
core.info(`##[add-matcher]${path_1.default.join(matchersPath, 'csc.json')}`);
|
||||||
|
core.info(`##[add-matcher]${path_1.default.join(matchersPath, 'msbuild.json')}`);
|
||||||
}
|
}
|
||||||
catch (error) {
|
catch (error) {
|
||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
|
3
package-lock.json
generated
3
package-lock.json
generated
@ -18,8 +18,7 @@
|
|||||||
"@actions/io": "^1.0.2",
|
"@actions/io": "^1.0.2",
|
||||||
"fast-xml-parser": "^4.4.1",
|
"fast-xml-parser": "^4.4.1",
|
||||||
"json5": "^2.2.3",
|
"json5": "^2.2.3",
|
||||||
"semver": "^7.6.0",
|
"semver": "^7.6.0"
|
||||||
"undici": "^5.28.5"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.12",
|
"@types/jest": "^29.5.12",
|
||||||
|
@ -91,6 +91,7 @@ export async function run() {
|
|||||||
|
|
||||||
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
||||||
core.info(`##[add-matcher]${path.join(matchersPath, 'csc.json')}`);
|
core.info(`##[add-matcher]${path.join(matchersPath, 'csc.json')}`);
|
||||||
|
core.info(`##[add-matcher]${path.join(matchersPath, 'msbuild.json')}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
core.setFailed(error.message);
|
core.setFailed(error.message);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user