Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,20 @@
"reportgenerator"
],
"rollForward": false
},
"dotnet-coverage": {
"version": "18.1.0",
"commands": [
"dotnet-coverage"
],
"rollForward": false
},
"dotnet-sonarscanner": {
"version": "11.0.0",
"commands": [
"dotnet-sonarscanner"
],
"rollForward": false
}
}
}
63 changes: 26 additions & 37 deletions .github/workflows/sonar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
- "src/**"
- "tests/**"
- "**/*.props"
- "**/packages.lock.json"
- ".config/dotnet-tools.json"
- "global.json"
- ".github/workflows/sonar.yml"
pull_request:
Expand All @@ -15,6 +17,9 @@ on:
paths:
- "src/**"
- "tests/**"
- "**/*.props"
- "**/packages.lock.json"
- ".config/dotnet-tools.json"
- "global.json"
- ".github/workflows/sonar.yml"
workflow_dispatch:
Expand All @@ -23,7 +28,7 @@ concurrency:
cancel-in-progress: true
jobs:
sonarcloud:
runs-on: windows-latest
runs-on: ubuntu-latest
permissions:
contents: read
steps:
Expand All @@ -34,48 +39,32 @@ jobs:
uses: actions/setup-dotnet@v5
with:
global-json-file: ./global.json
cache: true
cache-dependency-path: "**/packages.lock.json"
- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: 17
distribution: "zulu"
- name: Cache SonarCloud packages
uses: actions/cache@v4
with:
path: ~\sonar\cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache SonarCloud scanner
id: cache-sonar-scanner
uses: actions/cache@v4
with:
path: .\.sonar\scanner
key: ${{ runner.os }}-sonar-scanner
restore-keys: ${{ runner.os }}-sonar-scanner
- name: Install SonarCloud scanner
if: steps.cache-sonar-scanner.outputs.cache-hit != 'true'
shell: powershell
run: |
New-Item -Path .\.sonar\scanner -ItemType Directory
dotnet tool update dotnet-sonarscanner --tool-path .\.sonar\scanner
- name: Install dotnet-coverage tool
run: |
dotnet tool install --global dotnet-coverage
- name: Install tools
run: dotnet tool restore
- name: Build and analyze with coverage
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
shell: powershell
USE_MOCK_SERVER: ${{ vars.USE_MOCK_SERVER }}
run: |
# Start SonarCloud analysis
.\.sonar\scanner\dotnet-sonarscanner begin `
/k:"Tsingis_bitcoin-web-api" `
/o:"tsingis" `
/d:sonar.token="${{ secrets.SONAR_TOKEN }}" `
/d:sonar.host.url="https://sonarcloud.io" `
/d:sonar.cs.vscoveragexml.reportsPaths="coverage.xml" `
/d:sonar.scanner.scanAll=false `
/d:sonar.exclusions="global.json"
dotnet build --no-incremental
dotnet-coverage collect "dotnet test" -f xml -o "coverage.xml"
.\.sonar\scanner\dotnet-sonarscanner end `
/d:sonar.token="${{ secrets.SONAR_TOKEN }}"
dotnet tool run dotnet-sonarscanner begin \
/k:"Tsingis_bitcoin-web-api" \
/o:"tsingis" \
/d:sonar.token="${{ env.SONAR_TOKEN }}" \
/d:sonar.host.url="https://sonarcloud.io" \
/d:sonar.cs.vscoveragexml.reportsPaths="coverage.xml" \
/d:sonar.scanner.scanAll=false

dotnet restore --locked-mode
dotnet build --no-restore
dotnet tool run dotnet-coverage collect \
"dotnet test --no-restore --no-build" -f xml -o "coverage.xml"

dotnet tool run dotnet-sonarscanner end \
/d:sonar.token="${{ env.SONAR_TOKEN }}"
Loading