Hi,
I am using the Sonar scanner CLI tool for Dotnet for analysis and getting the following error while performing the analysis
ERROR: Error during SonarScanner execution
org.eclipse.jgit.errors.NoWorkTreeException: Bare Repository has neither a working tree, nor an index
at org.sonarsource.scm.git.IncludedFilesRepository.<init>(IncludedFilesRepository.java:40)
at org.sonarsource.scm.git.GitIgnoreCommand.init(GitIgnoreCommand.java:37)
at org.sonar.scanner.scan.filesystem.ProjectFileIndexer.index(ProjectFileIndexer.java:98)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:390)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:126)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:58)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:52)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
I have the .git folder along with the source folder. Below is the folder structure of the project and I am performing the analysis from /
├───.git
├───api
│ ├───src
│ │ ├───serviceA
│ │ └───serviceB
│ └───tests
│ ├───serviceA
│ └───serviceB
└───web
Below is an outline of the Dockerfile used.
FROM mcr.microsoft.com/dotnet/aspnet:5.0-focal AS base
WORKDIR /app
EXPOSE 8080
FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
#Install open jdk 11 for SonarCloud analysis tool
RUN apt-get update && \
apt-get install apt-utils -y && \
apt-get install -y openjdk-11-jdk && \
apt-get install -y ant && \
apt-get clean;
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f;
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/
RUN export JAVA_HOME
COPY .git .
COPY api-services/src/serviceA/ api-services/src/serviceA/
COPY api-services/tests/serviceA/ api-services/tests/serviceA/
# SonarCloud analysis and publish
RUN dotnet tool install --global dotnet-sonarscanner
RUN dotnet restore "/api-services/src/serviceA/serviceA.csproj"
RUN /root/.dotnet/tools/dotnet-sonarscanner begin /o:"org" /k:"key" /d:sonar.scm.provider="git" /d:sonar.login="xxxx" <other analysis parameters>
RUN dotnet build "/api-services/src/serviceA/serviceA.csproj" -c Release -o /app/build
RUN dotnet test "/api-services/tests/serviceA/serviceA.test.csproj"
RUN /root/.dotnet/tools/dotnet-sonarscanner end /d:sonar.login="xxxx"
FROM build AS publish
RUN dotnet publish "/api-services/src/serviceA/serviceA.csproj" -c Release -o /app/publish
- SonarScanner Version used - 4.4.0.2170
Appreciate any assistance !