diff --git a/.github/workflows/SonarCloud.yml b/.github/workflows/SonarCloud.yml new file mode 100644 index 0000000..625d9f4 --- /dev/null +++ b/.github/workflows/SonarCloud.yml @@ -0,0 +1,65 @@ +name: SonarCloud + +on: + push: + branches: + - main + +jobs: + build: + runs-on: windows-latest + steps: + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: 21 + distribution: temurin + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - 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: Cache dotnet-coverage + id: cache-dotnet-coverage + uses: actions/cache@v4 + with: + path: .\dotnet-coverage + key: ${{ runner.os }}-dotnet-coverage + restore-keys: ${{ runner.os }}-dotnet-coverage + - name: Install dotnet-coverage + if: steps.cache-dotnet-coverage.outputs.cache-hit != 'true' + shell: powershell + run: | + New-Item -Path .\dotnet-coverage -ItemType Directory + dotnet tool update dotnet-coverage --tool-path .\dotnet-coverage + - 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:"na1307_Bluehill.Deconstructors" /o:"na1307" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.vscoveragexml.reportsPaths=coverage.xml + dotnet build --no-incremental + .\dotnet-coverage\dotnet-coverage collect 'dotnet test --no-build --verbosity normal' -f xml -o 'coverage.xml' + .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 1d356bc..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: Build and SonarCloud - -on: - push: - branches: - - main - pull_request: - types: [opened, synchronize, reopened] - branches: - - main - -jobs: - build: - name: Build and analyze - runs-on: windows-latest - steps: - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - java-version: 21 - distribution: 'temurin' # Alternative distribution options are available. - - name: Setup .NET - uses: actions/setup-dotnet@v4 - with: - dotnet-version: 8.0.x - - 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: Cache dotnet-coverage - id: cache-dotnet-coverage - uses: actions/cache@v4 - with: - path: .\dotnet-coverage - key: ${{ runner.os }}-dotnet-coverage - restore-keys: ${{ runner.os }}-dotnet-coverage - - name: Install dotnet-coverage - if: steps.cache-dotnet-coverage.outputs.cache-hit != 'true' - shell: powershell - run: | - New-Item -Path .\dotnet-coverage -ItemType Directory - dotnet tool update dotnet-coverage --tool-path .\dotnet-coverage - - name: SonarScanner Begin - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: .\.sonar\scanner\dotnet-sonarscanner begin /k:"na1307_Bluehill.Deconstructors" /o:"na1307" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" /d:sonar.cs.vscoveragexml.reportsPaths=coverage.xml - - name: Restore dependencies - run: dotnet restore - - name: Build - run: dotnet build --no-restore --no-incremental - - name: Test - run: .\dotnet-coverage\dotnet-coverage collect 'dotnet test --no-build --verbosity normal' -f xml -o 'coverage.xml' - - name: SonarScanner End - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.token="${{ secrets.SONAR_TOKEN }}" diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml new file mode 100644 index 0000000..5616cab --- /dev/null +++ b/.github/workflows/dotnet.yml @@ -0,0 +1,26 @@ +# This workflow will build a .NET project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net + +name: .NET + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - name: Setup .NET + uses: actions/setup-dotnet@v4 + with: + dotnet-version: 8.0.x + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore + - name: Test + run: dotnet test --no-build --verbosity normal diff --git a/Directory.Packages.props b/Directory.Packages.props index 3828c18..e864c3d 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -3,8 +3,8 @@ true - - + +