Skip to content

Instantly share code, notes, and snippets.

@guibranco
Last active July 19, 2024 12:22

Revisions

  1. guibranco revised this gist Jul 19, 2024. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion sonarcloud.yml
    Original file line number Diff line number Diff line change
    @@ -16,7 +16,7 @@ jobs:
    - name: Set up Java
    uses: actions/setup-java@v4
    with:
    distribution: 'temurin' # Use whatever distribution you want. I prefer Temurin or Zulu, feel free to use any other (check SonarCloud for supported distributions and versions).
    distribution: 'temurin' # Use whatever distribution you want. I prefer Temurin or Zulu. Feel free to use any other (check SonarCloud for supported distributions and versions).
    java-version: 21

    - uses: actions/checkout@v4
  2. guibranco created this gist Jul 19, 2024.
    65 changes: 65 additions & 0 deletions sonarcloud.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,65 @@
    name: SonarCloud Analysis

    on:
    push:
    branches:
    - main
    pull_request:
    types: [opened, synchronize, reopened]

    jobs:
    SonarCloudAnalysis:
    name: SonarCloud Analysis
    runs-on: windows-latest

    steps:
    - name: Set up Java
    uses: actions/setup-java@v4
    with:
    distribution: 'temurin' # Use whatever distribution you want. I prefer Temurin or Zulu, feel free to use any other (check SonarCloud for supported distributions and versions).
    java-version: 21

    - uses: actions/checkout@v4
    with:
    fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis

    - 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: 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 }} # Needed to get PR information, if any
    SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
    shell: powershell
    run: |
    .\.sonar\scanner\dotnet-sonarscanner begin /k:"${{ env.KEY }}" /o:"${{ env.ORG }}" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io"
    dotnet build -c Release --verbosity minimal
    dotnet test -c Release --verbosity minimal --no-build --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat="cobertura"
    .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}"