Compare commits

..

1 Commits

Author SHA1 Message Date
dependabot[bot]
f66158eded Bump jest-circus from 29.7.0 to 30.4.2
Bumps [jest-circus](https://github.com/jestjs/jest/tree/HEAD/packages/jest-circus) from 29.7.0 to 30.4.2.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.4.2/packages/jest-circus)

---
updated-dependencies:
- dependency-name: jest-circus
  dependency-version: 30.4.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-22 18:35:14 +00:00
6 changed files with 1749 additions and 177 deletions

11
.github/csc.json vendored
View File

@@ -4,14 +4,13 @@
"owner": "csc",
"pattern": [
{
"regexp": "^\\s*(?:\\d+>\\s*)?([^\\s].*)\\((\\d+)(?:,(\\d+))?(?:,\\d+)*\\):\\s+(error|warning)\\s+([a-zA-Z]+(?<!MSB)\\d*):\\s*(.*?)\\s+\\[(.*?)\\]$",
"regexp": "^([^\\s].*)\\((\\d+)(?:,\\d+|,\\d+,\\d+)?\\):\\s+(error|warning)\\s+([a-zA-Z]+(?<!MSB)\\d+):\\s*(.*?)\\s+\\[(.*?)\\]$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"code": 5,
"message": 6,
"fromPath": 7
"severity": 3,
"code": 4,
"message": 5,
"fromPath": 6
}
]
}

View File

@@ -239,8 +239,7 @@ jobs:
with:
dotnet-version: ${{ matrix.dotnet }}
- name: Create temporary global.json
run: |
echo '{"sdk":{"version": "${{ steps.stepid.outputs.dotnet-version }}"}}' > ./global.json
run: echo '{"sdk":{"version": "${{ steps.stepid.outputs.dotnet-version }}"}}' > ./global.json
- name: Execute dotnet
run: dotnet build <my project>
```

View File

@@ -1,96 +1,45 @@
import cscFile from '../.github/csc.json';
describe('csc tests', () => {
test('regular expression in csc.json is valid', async () => {
const regexPattern = cscFile['problemMatcher'][0]['pattern'][0]['regexp'];
const regexResultsMap = cscFile['problemMatcher'][0]['pattern'][0];
const regex = new RegExp(regexPattern);
const testCases: Array<{input: string; results: Record<string, string>}> = [
{
input:
const stringsToMatch = [
'Program.cs(10,79): error CS1002: ; expected [/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj]',
results: {
"S:\\Msbuild\\src\\Build\\Evaluation\\ExpressionShredder.cs(33,7): error CS1003: Syntax error, ',' expected [S:\\msbuild\\src\\Build\\Microsoft.Build.csproj > Properties:prop]"
];
// Expected results are calculated according to the csc matcher located in csc.json file
const expectedResults = [
{
file: 'Program.cs',
line: '10',
column: '79',
severity: 'error',
code: 'CS1002',
message: '; expected',
fromPath:
'/Users/zacharyeisinger/Documents/repo/setup-dotnet/__tests__/sample-broken-csproj/sample.csproj'
}
},
{
input:
"S:\\Msbuild\\src\\Build\\Evaluation\\ExpressionShredder.cs(33,7): error CS1003: Syntax error, ',' expected [S:\\msbuild\\src\\Build\\Microsoft.Build.csproj > Properties:prop]",
results: {
file: 'S:\\Msbuild\\src\\Build\\Evaluation\\ExpressionShredder.cs',
line: '33',
column: '7',
severity: 'error',
code: 'CS1003',
message: "Syntax error, ',' expected",
fromPath:
'S:\\msbuild\\src\\Build\\Microsoft.Build.csproj > Properties:prop'
}
},
{
// `dotnet format` style error
input:
'C:\\actions-runner\\_work\\Some\\Folder\\SomeFile.cs(222,8): error WHITESPACE: Fix whitespace formatting. Delete 1 characters. [C:\\actions-runner\\_work\\Some\\Folder\\SomeProject.csproj]',
results: {
file: 'C:\\actions-runner\\_work\\Some\\Folder\\SomeFile.cs',
line: '222',
column: '8',
severity: 'error',
code: 'WHITESPACE',
message: 'Fix whitespace formatting. Delete 1 characters.',
fromPath: 'C:\\actions-runner\\_work\\Some\\Folder\\SomeProject.csproj'
}
},
{
// CSC error with whitespace prefix
input:
' /Volumes/Code/ghe_actions-2.301.1/Some/Folder/SomeFile.cs(10,8): error CS1014: A get or set accessor expected [/Volumes/Code/ghe_actions-2.301.1/Some/Folder/SomeProject.csproj]',
results: {
file: '/Volumes/Code/ghe_actions-2.301.1/Some/Folder/SomeFile.cs',
line: '10',
column: '8',
severity: 'error',
code: 'CS1014',
message: 'A get or set accessor expected',
fromPath:
'/Volumes/Code/ghe_actions-2.301.1/Some/Folder/SomeProject.csproj'
}
},
{
// CSC error with MSBuild prefix
input:
' 20>C:\\actions-runner\\_work\\Some\\Folder\\SomeFile.cs(8,2): error CS1014: A get or set accessor expected [C:\\actions-runner\\_work\\Some\\Folder\\SomeProject.csproj]',
results: {
file: 'C:\\actions-runner\\_work\\Some\\Folder\\SomeFile.cs',
line: '8',
column: '2',
severity: 'error',
code: 'CS1014',
message: 'A get or set accessor expected',
fromPath: 'C:\\actions-runner\\_work\\Some\\Folder\\SomeProject.csproj'
}
}
];
test.each(testCases)(
'regex matches and parses: $input',
({input, results}: {input: string; results: Record<string, string>}) => {
const matchedResultsArray = input.match(regex);
expect(matchedResultsArray).not.toBeNull();
for (const propName in results) {
stringsToMatch.map((string, index) => {
const matchedResultsArray = string.match(regex);
for (const propName in expectedResults[index]) {
const propertyIndex = regexResultsMap[propName];
const expectedPropValue = results[propName];
const expectedPropValue = expectedResults[index][propName];
const matchedPropValue = matchedResultsArray![propertyIndex];
expect(matchedPropValue).toEqual(expectedPropValue);
}
},
10000
);
});
}, 10000);
});

View File

@@ -7,25 +7,18 @@ branding:
inputs:
dotnet-version:
description: 'Optional SDK version(s) to use. If not provided, will install global.json version when available. Examples: 2.2.104, 3.1, 3.1.x, 3.x, 6.0.2xx, latest'
required: false
dotnet-quality:
description: 'Optional quality of the build. The possible values are: daily, preview, ga.'
required: false
dotnet-channel:
description: 'Optional channel for the installation. The possible values are: STS, LTS, A.B (e.g. 8.0), A.B.Cxx (e.g. 8.0.1xx, available since 5.0). To be used with "dotnet-version: latest".'
required: false
global-json-file:
description: 'Optional global.json location, if your global.json isn''t located in the root of the repo.'
required: false
source-url:
description: 'Optional package source for which to set up authentication. Will consult any existing NuGet.config in the root of the repo and provide a temporary NuGet.config using the NUGET_AUTH_TOKEN environment variable as a ClearTextPassword'
required: false
owner:
description: 'Optional OWNER for using packages from GitHub Package Registry organizations/users other than the current repository''s owner. Only used if a GPR URL is also provided in source-url'
required: false
config-file:
description: 'Optional NuGet.config location, if your NuGet.config isn''t located in the root of the repo.'
required: false
cache:
description: 'Optional input to enable caching of the NuGet global-packages folder'
required: false

1810
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -53,7 +53,7 @@
"eslint-plugin-node": "^11.1.0",
"husky": "^9.1.7",
"jest": "^29.7.0",
"jest-circus": "^29.7.0",
"jest-circus": "^30.4.2",
"jest-each": "^29.7.0",
"prettier": "^3.2.5",
"ts-jest": "^29.1.2",