diff --git a/.circleci/config.yml b/.circleci/config.yml index 06d607e..daa8952 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -147,7 +147,8 @@ jobs: build-and-test: executor: docker-python steps: - - checkout + - checkout: + method: full - setup_remote_docker - sonarcloud/scan - run: diff --git a/ContractsApi.Tests/ContractsApi.Tests.csproj b/ContractsApi.Tests/ContractsApi.Tests.csproj index ec278a0..7a4bdfc 100644 --- a/ContractsApi.Tests/ContractsApi.Tests.csproj +++ b/ContractsApi.Tests/ContractsApi.Tests.csproj @@ -15,10 +15,18 @@ + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + - + diff --git a/ContractsApi.Tests/Dockerfile b/ContractsApi.Tests/Dockerfile index 308d713..8bd865c 100644 --- a/ContractsApi.Tests/Dockerfile +++ b/ContractsApi.Tests/Dockerfile @@ -12,17 +12,22 @@ ENV SONAR_TOKEN=$SONAR_TOKEN WORKDIR /app # Install and run sonar cloud scanner -# RUN apt-get update && apt-get install -y openjdk17 -RUN apt-get update && apt-get install -y openjdk-17-jdk +RUN apt-get update && apt-get install -y openjdk-17-jdk && apt-get clean \ +# install sonar scanner +&& dotnet tool install --global dotnet-sonarscanner \ +# Install report generator +&& dotnet tool install --global dotnet-reportgenerator-globaltool --version 5.2.0 -# RUN apk update \ -# && apk upgrade --no-cache \ -# && apk add --no-cache openjdk-17-jdk - -RUN dotnet tool install --global dotnet-sonarscanner ENV PATH="$PATH:/root/.dotnet/tools" -RUN dotnet sonarscanner begin /k:"LBHackney-IT_contracts-api" /o:"lbhackney-it" /d:sonar.host.url=https://sonarcloud.io /d:sonar.login="${SONAR_TOKEN}" +RUN dotnet sonarscanner begin \ +/k:"LBHackney-IT_contracts-api" \ +/o:"lbhackney-it" \ +/d:sonar.host.url=https://sonarcloud.io \ +/d:sonar.login="${SONAR_TOKEN}" \ +/d:sonar.coverageReportPaths="coverage/SonarQube.xml" \ +/d:sonar.dotnet.excludeTestProjects=true \ +/d:sonar.exclusions="**/*.js, **/*.ts, **/*.css" # Copy csproj and nuget config and restore as distinct layers COPY ./ContractsApi.sln ./ @@ -30,15 +35,15 @@ COPY ./ContractsApi/ContractsApi.csproj ./ContractsApi/ COPY ./ContractsApi.Tests/ContractsApi.Tests.csproj ./ContractsApi.Tests/ COPY /NuGet.Config /root/.nuget/NuGet/NuGet.Config -RUN dotnet restore ./ContractsApi/ContractsApi.csproj -RUN dotnet restore ./ContractsApi.Tests/ContractsApi.Tests.csproj +RUN dotnet restore ./ContractsApi/ContractsApi.csproj \ +&& dotnet restore ./ContractsApi.Tests/ContractsApi.Tests.csproj # Copy everything else and build COPY . . -RUN dotnet build -c Release -o out ContractsApi/ContractsApi.csproj -RUN dotnet build -c debug -o out ContractsApi.Tests/ContractsApi.Tests.csproj - -CMD dotnet test +RUN dotnet build ./ContractsApi/ContractsApi.csproj --no-restore --no-dependencies \ +&& dotnet build ./ContractsApi.Tests/ContractsApi.Tests.csproj --no-restore -RUN dotnet sonarscanner end /d:sonar.login="${SONAR_TOKEN}" +CMD dotnet test ./ContractsApi.Tests/ContractsApi.Tests.csproj --no-build --collect:"XPlat Code Coverage" --results-directory ./coverage \ + && reportgenerator "-reports:./coverage/*/coverage.cobertura.xml" "-targetdir:coverage" "-reporttypes:SonarQube" "-verbosity:Off" \ + && (dotnet sonarscanner end /d:sonar.login="${SONAR_TOKEN}" > /dev/null) diff --git a/ContractsApi/ContractsApi.csproj b/ContractsApi/ContractsApi.csproj index 192caab..75337cb 100644 --- a/ContractsApi/ContractsApi.csproj +++ b/ContractsApi/ContractsApi.csproj @@ -24,7 +24,7 @@ - +