aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/checks.yml
blob: 5311a67f6c1a3513bd43f235a6b5789d5baa2ec3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
name: Perform checks

on:
  pull_request:
    branches: [ master ]
    paths:
      - '**'
      - '!.github/**'
      - '!*.yml'
      - '!*.config'
      - '!README.md'
      - '.github/workflows/*.yml'

permissions:
  pull-requests: write
  checks: write

concurrency:
  group: pr-checks-${{ github.event.number }}
  cancel-in-progress: true

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: actions/setup-dotnet@v4
        with:
          global-json-file: global.json

      - name: Overwrite csc problem matcher
        run: echo "::add-matcher::.github/csc.json"

      - run: dotnet restore

      - name: Print dotnet format version
        run: dotnet format --version

      - name: Run dotnet format whitespace
        run: |
          dotnet format whitespace --verify-no-changes --report ./whitespace-report.json -v d

      # For some unknown reason this step sometimes fails with exit code 139 (segfault?),
      # so in that case we'll try again (3 tries max).
      - name: Run dotnet format style
        uses: TSRBerry/unstable-commands@v1
        with:
          commands: dotnet format style --severity info --verify-no-changes --report ./style-report.json -v d
          timeout-minutes: 5
          retry-codes: 139

      # For some unknown reason this step sometimes fails with exit code 139 (segfault?),
      # so in that case we'll try again (3 tries max).
      - name: Run dotnet format analyzers
        uses: TSRBerry/unstable-commands@v1
        with:
          commands: dotnet format analyzers --severity info --verify-no-changes --report ./analyzers-report.json -v d
          timeout-minutes: 5
          retry-codes: 139

      - name: Upload report
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: dotnet-format
          path: ./*-report.json

  pr_build:
    uses: ./.github/workflows/build.yml
    needs: format
    secrets: inherit