Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,8 @@ jobs:
build-and-test:
executor: docker-python
steps:
- checkout
- checkout:
method: full
- setup_remote_docker
- sonarcloud/scan
- run:
Expand Down
10 changes: 9 additions & 1 deletion ContractsApi.Tests/ContractsApi.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,18 @@

<ItemGroup>
<PackageReference Include="AutoFixture" Version="4.17.0" />
<PackageReference Include="coverlet.collector" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.msbuild" Version="6.0.4">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="DeepCloner" Version="0.10.4" />
<PackageReference Include="FluentAssertions" Version="6.7.0" />
<PackageReference Include="Hackney.Core.Http" Version="1.73.0-feat-patch-api-g0004" />
<PackageReference Include="Hackney.Core.JWT" Version="1.72.0" />
<PackageReference Include="Hackney.Core.JWT" Version="1.87.0" />
<PackageReference Include="Hackney.Core.Sns" Version="1.74.0-feat-generic-sns0002" />
<PackageReference Include="Hackney.Core.Testing.DynamoDb" Version="1.57.0" />
<PackageReference Include="Hackney.Core.Testing.Shared" Version="1.54.0" />
Expand Down
35 changes: 20 additions & 15 deletions ContractsApi.Tests/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,33 +12,38 @@ 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 ./
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)
2 changes: 1 addition & 1 deletion ContractsApi/ContractsApi.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<PackageReference Include="Hackney.Core.DynamoDb" Version="1.51.0" />
<PackageReference Include="Hackney.Core.HealthCheck" Version="1.49.0" />
<PackageReference Include="Hackney.Core.Http" Version="1.73.0-feat-patch-api-g0004" />
<PackageReference Include="Hackney.Core.JWT" Version="1.72.0" />
<PackageReference Include="Hackney.Core.JWT" Version="1.87.0" />
<PackageReference Include="Hackney.Core.Logging" Version="1.49.0" />
<PackageReference Include="Hackney.Core.Middleware" Version="1.49.0" />
<PackageReference Include="Hackney.Core.Sns" Version="1.74.0-feat-generic-sns0002" />
Expand Down
Loading