-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create sonarcloud.yml #365
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,64 @@ | ||||||||||||||||||||
name: SonarCloud Analysis | ||||||||||||||||||||
|
||||||||||||||||||||
on: | ||||||||||||||||||||
push: | ||||||||||||||||||||
branches: | ||||||||||||||||||||
- main | ||||||||||||||||||||
pull_request: | ||||||||||||||||||||
types: [opened, synchronize, reopened] | ||||||||||||||||||||
|
||||||||||||||||||||
jobs: | ||||||||||||||||||||
SonarCloudAnalysis: | ||||||||||||||||||||
name: SonarCloud Analysis | ||||||||||||||||||||
runs-on: ubuntu-latest | ||||||||||||||||||||
|
||||||||||||||||||||
steps: | ||||||||||||||||||||
- name: Set up Java | ||||||||||||||||||||
uses: actions/setup-java@v4 | ||||||||||||||||||||
with: | ||||||||||||||||||||
distribution: 'temurin' | ||||||||||||||||||||
java-version: 21 | ||||||||||||||||||||
|
||||||||||||||||||||
- uses: actions/checkout@v4 | ||||||||||||||||||||
with: | ||||||||||||||||||||
fetch-depth: 0 | ||||||||||||||||||||
|
||||||||||||||||||||
- name: Docker compose up | ||||||||||||||||||||
run: docker compose up -d && sleep 10 | ||||||||||||||||||||
|
||||||||||||||||||||
- 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/cache | ||||||||||||||||||||
key: ${{ runner.os }}-sonar-scanner | ||||||||||||||||||||
restore-keys: ${{ runner.os }}-sonar-scanner | ||||||||||||||||||||
|
||||||||||||||||||||
- name: Install SonarCloud scanner | ||||||||||||||||||||
if: steps.cache-sonar-scanner.outputs.cache-hit != 'true' | ||||||||||||||||||||
run: dotnet tool update dotnet-sonarscanner --tool-path ~/.sonar/cache/ | ||||||||||||||||||||
|
||||||||||||||||||||
- name: Set SonarCloud variables | ||||||||||||||||||||
shell: bash | ||||||||||||||||||||
run: | | ||||||||||||||||||||
KEY="${{ github.repository_owner }}_${{ github.event.repository.name }}" | ||||||||||||||||||||
ORG="${{ github.repository_owner }}" | ||||||||||||||||||||
echo "KEY=${KEY}" >> "${GITHUB_ENV}" # Keep the variable KEY as it | ||||||||||||||||||||
echo "ORG=${ORG@L}" >> "${GITHUB_ENV}" # Lowercase the ORG variable | ||||||||||||||||||||
- name: Build and analyze | ||||||||||||||||||||
env: | ||||||||||||||||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||||||||||||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | ||||||||||||||||||||
run: | | ||||||||||||||||||||
~/.sonar/cache/dotnet-sonarscanner begin /k:"${{ env.KEY }}" /o:"${{ env.ORG }}" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.scanner.scanAll=false /d:sonar.cs.opencover.reportsPaths="Tests/**/coverage.net8.0.opencover.xml" | ||||||||||||||||||||
dotnet build -c Release --verbosity minimal | ||||||||||||||||||||
dotnet test -c Release --verbosity minimal --no-build --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat="opencover" | ||||||||||||||||||||
~/.sonar/cache/dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" | ||||||||||||||||||||
Comment on lines
+58
to
+61
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. π οΈ Refactor suggestion Add explicit restore step and make coverage path more flexible. The current configuration has several potential improvements:
- ~/.sonar/cache/dotnet-sonarscanner begin /k:"${{ env.KEY }}" /o:"${{ env.ORG }}" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.scanner.scanAll=false /d:sonar.cs.opencover.reportsPaths="Tests/**/coverage.net8.0.opencover.xml"
+ ~/.sonar/cache/dotnet-sonarscanner begin /k:"${{ env.KEY }}" /o:"${{ env.ORG }}" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.scanner.scanAll=false /d:sonar.cs.opencover.reportsPaths="Tests/**/coverage.*.opencover.xml"
+ dotnet restore
dotnet build -c Release --verbosity minimal
dotnet test -c Release --verbosity minimal --no-build --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat="opencover"
~/.sonar/cache/dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" π Committable suggestion
Suggested change
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix conflicting cache paths.
Both cache steps are using the same path (
~/.sonar/cache
), which will cause conflicts. The scanner should use a different path.π Committable suggestion
π§° Tools
πͺ yamllint
[error] 32-32: trailing spaces
(trailing-spaces)
[error] 40-40: trailing spaces
(trailing-spaces)