mirror of
https://github.com/actions/setup-dotnet.git
synced 2026-07-02 02:58:23 +01:00
Compare commits
1 Commits
main
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f66158eded |
11
.github/csc.json
vendored
11
.github/csc.json
vendored
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
```
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
@@ -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
1810
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user