mirror of
https://github.com/actions/setup-dotnet.git
synced 2025-08-14 12:45:09 +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');
|
||||
core.info(`##[add-matcher]${path_1.default.join(matchersPath, 'csc.json')}`);
|
||||
core.info(`##[add-matcher]${path_1.default.join(matchersPath, 'msbuild.json')}`);
|
||||
}
|
||||
catch (error) {
|
||||
core.setFailed(error.message);
|
||||
|
3
package-lock.json
generated
3
package-lock.json
generated
@ -18,8 +18,7 @@
|
||||
"@actions/io": "^1.0.2",
|
||||
"fast-xml-parser": "^4.4.1",
|
||||
"json5": "^2.2.3",
|
||||
"semver": "^7.6.0",
|
||||
"undici": "^5.28.5"
|
||||
"semver": "^7.6.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^29.5.12",
|
||||
|
@ -91,6 +91,7 @@ export async function run() {
|
||||
|
||||
const matchersPath = path.join(__dirname, '..', '..', '.github');
|
||||
core.info(`##[add-matcher]${path.join(matchersPath, 'csc.json')}`);
|
||||
core.info(`##[add-matcher]${path.join(matchersPath, 'msbuild.json')}`);
|
||||
} catch (error) {
|
||||
core.setFailed(error.message);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user