diff --git a/.github/workflows/analysis.yml b/.github/workflows/analysis.yml new file mode 100644 index 00000000..98350f99 --- /dev/null +++ b/.github/workflows/analysis.yml @@ -0,0 +1,51 @@ +name: Analysis +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + name: Static Analysis + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + - name: Cache SonarCloud packages + uses: actions/cache@v1 + with: + path: ~/sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Cache SonarCloud scanner + id: cache-sonar-scanner + uses: actions/cache@v1 + 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: bash + run: | + mkdir -p ./sonar/scanner + dotnet tool update dotnet-sonarscanner --tool-path .\.sonar\scanner + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + shell: bash + run: | + ./.sonar/scanner/dotnet-sonarscanner begin \ + -k:"AnonymusRaccoon_Kyoo" \ + -o:"anonymus-raccoon" \ + -d:sonar.login="${{ secrets.SONAR_TOKEN }}" \ + -d:sonar.host.url="https://sonarcloud.io" + + dotnet build --no-incremental + + ./.sonar/scanner/dotnet-sonarscanner end -d:sonar.login="${{ secrets.SONAR_TOKEN }}"