Add the guides and wiki pages for the C and C++ and C# quality checks
TirSystem/github-action: Publish wiki / publish-wiki (push) Skipped
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Skipped
Validate workflows / validate (pull_request) Successful in 20s
TirSystem/github-action: Publish wiki / publish-wiki (push) Skipped
TirSystem/github-action: Sync GitHub mirror metadata / sync-metadata (push) Skipped
Validate workflows / validate (pull_request) Successful in 20s
Task: MIL-007#6
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
<!-- translation of QualityChecksCSharp.md, source sha256 2baa0d48f712 -->
|
||||
|
||||
> Dette er en oversættelse af [`QualityChecksCSharp`](QualityChecksCSharp). Den engelske side er autoritativ, og ændringer her bliver overskrevet, næste gang wikien publiceres.
|
||||
|
||||
[English](QualityChecksCSharp) | Dansk | [Bahasa Melayu](QualityChecksCSharp.ms)
|
||||
|
||||
# Aflæsning af resultater fra kvalitetskontrol af C#
|
||||
|
||||
Sådan kalder en softwareudvikler den fælles kvalitetskontrol af C#, aflæser en mislykket kørsel og får den til at bestå. Workflowet kontrollerer formateringen og bygger en solution eller et projekt med advarsler som fejl, på et præcist .NET SDK i version 10 eller nyere, ændrer ingen fil og kræver ingen secret. Dets kontrakt er ADR-0008 i dette repository.
|
||||
|
||||
## Kald af workflowet
|
||||
|
||||
```yaml
|
||||
name: Quality C#
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
quality:
|
||||
permissions:
|
||||
contents: read
|
||||
uses: TirSystem/github-action/.gitea/workflows/quality-checks-csharp.yml@v1
|
||||
with:
|
||||
project: src/App.sln
|
||||
```
|
||||
|
||||
| Input | Standard | Betydning |
|
||||
| --- | --- | --- |
|
||||
| `working-directory` | `.` | Mappe, relativt til repositoryets rod, hvis filer kontrolleres |
|
||||
| `project` | tom | Solution- eller projektfil, relativt til `working-directory`; tom bruger den eneste sporede `*.sln` eller `*.slnx`, ellers den eneste `*.csproj`, der er sporet dér |
|
||||
| `dotnet-sdk-version` | `10.0.401` | Præcis version af .NET SDK, 10 eller nyere; en kanal som `10.0`, et interval og en version under 10 afvises |
|
||||
| `tools-ref` | `v1` | Tag eller gren i `TirSystem/github-action`, hvorfra scriptet `tools/quality-checks-csharp.sh` hentes |
|
||||
|
||||
Henvis til workflowet ved major-tagget (`@v1`) eller et præcist tag, aldrig ved `main`. Et kald ved et præcist tag er kun fuldt fastlåst, når `tools-ref` angiver samme tag. Se opgraderingsvejledningen. SDK-versionen er præcis: at hæve standardværdien er en ny udgivelse af dette repository, ikke en stille ændring.
|
||||
|
||||
## Hvad repositoryet skal have
|
||||
|
||||
- En solution eller et projekt, der bygger med SDK'et. Flere kandidater kræver inputtet `project`; C#-filer uden solution eller projekt fejler med `[configuration]`.
|
||||
- Netværk: `dotnet format` og `dotnet build` gendanner projektets NuGet-pakker i kørslen.
|
||||
- Regler i `.editorconfig` (og de analysatorer, projektet slår til, for eksempel med `AnalysisLevel` og `EnforceCodeStyleInBuild`) afgør, hvad et fund er.
|
||||
|
||||
## Hvad der kontrolleres
|
||||
|
||||
| Filer | Værktøj | Hvad det melder |
|
||||
| --- | --- | --- |
|
||||
| solutionen eller projektet | `dotnet format --verify-no-changes` | formatering og stil, der afviger fra `.editorconfig` |
|
||||
| det samme | `dotnet build -warnaserror` | compiler- og analysatoradvarsler, som får bygningen til at fejle |
|
||||
|
||||
Usporede filer kontrolleres ikke. Et repository uden `*.cs`-filer består med en bemærkning. Projektets tests køres ikke.
|
||||
|
||||
## Aflæsning af en kørsel
|
||||
|
||||
1. Åbn statuskontrollen på pull requesten og derefter jobbet `quality-checks-csharp`.
|
||||
2. Hvert værktøj har sin egen logggruppe. Begge kører, selv om det første fejlede, så én kørsel viser alle fund.
|
||||
3. Et værktøj ender med `PASS <værktøj>` eller `FAIL <værktøj>`; sidste linje i en mislykket kørsel nævner dem: `Quality checks failed: dotnet format --verify-no-changes`.
|
||||
4. Et fund skrives af værktøjet selv som `path(line,column): CODE message`.
|
||||
|
||||
## Typiske fejl og rettelser
|
||||
|
||||
| Værktøj | Hvad loggen viser | Rettelse |
|
||||
| --- | --- | --- |
|
||||
| `dotnet format --verify-no-changes` | `Program.cs(12,5): error WHITESPACE: Fix whitespace formatting` | Kør `dotnet format <projekt>`, og commit |
|
||||
| `dotnet build -warnaserror` | `CS8602: Dereference of a possibly null reference` | Ret koden (null-kontrol); undertryk ikke advarslen uden en begrundelse |
|
||||
| `dotnet build -warnaserror` | `IDE0005: Using directive is unnecessary` | Fjern direktivet |
|
||||
|
||||
For at gentage en kørsel på din egen maskine skal du bruge samme SDK:
|
||||
|
||||
```bash
|
||||
dotnet --version # 10.0.401
|
||||
dotnet format src/App.sln --verify-no-changes
|
||||
dotnet build src/App.sln -warnaserror
|
||||
```
|
||||
|
||||
## Når workflowet selv fejler
|
||||
|
||||
| Meddelelse | Årsag | Rettelse |
|
||||
| --- | --- | --- |
|
||||
| `[configuration] dotnet-sdk-version '<x>' is not an exact stable version 10 or later` | En kanal, et interval, en preview eller en version under 10 | Angiv en præcis version som `10.0.401` |
|
||||
| `[configuration] working-directory must be a relative path inside the repository.` | En absolut sti eller `..` | Brug en sti inde i repositoryet |
|
||||
| `[configuration] C# files exist but no solution or project was found` | Repositoryet har `*.cs`-filer og ingen `*.sln`, `*.slnx` eller `*.csproj` i arbejdsmappen | Tilføj en, eller sæt `working-directory` |
|
||||
| `[configuration] Several solutions or projects were found` | Mere end én kandidat | Sæt inputtet `project` |
|
||||
| Installationstrinnet fejler | `dot.net` eller runnerens netværk kan ikke nås | Kør jobbet igen; se [troubleshooting.md](troubleshooting.md) |
|
||||
Reference in New Issue
Block a user