name: Perform checks on: pull_request: branches: [ master ] paths: - '**' - '!.github/**' - '!*.yml' - '!*.config' - '!*.md' - '.github/workflows/*.yml' pull_request_target: branches: [ master ] types: [closed] 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 cleanup: if: github.event.pull_request.merged == false runs-on: ubuntu-latest steps: - name: Setup gh extension run: | gh extension install actions/gh-actions-cache - name: Cleanup run: | echo "Fetching list of cache keys" cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1 ) ## Setting this to not fail the workflow while deleting cache keys. set +e echo "Deleting caches..." for cacheKey in $cacheKeysForPR do gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm done echo "Done" env: GH_TOKEN: ${{ github.token }} REPO: ${{ github.repository }} BRANCH: refs/pull/${{ github.event.pull_request.number }}/merge