5. SonarQube

5.1. Sonar Family

  • SonarQube
  • SonarCloud
  • SonarLint
  • SonarScanner

5.2. Install

docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube

5.3. SonarScanner

5.4. Budowanie Pull Request

sonar.pullrequest.base=master
sonar.pullrequest.branch=feature/my-new-feature
sonar.pullrequest.key=5
sonar.pullrequest.provider=GitHub
sonar.pullrequest.github.repository=my-company/my-repo https://blog.sonarsource.com/sonarcloud-loves-your-build-pipeline

5.5. Analiza kodu za pomocą mvn

5.5.1. pom.xml

<settings>
    <pluginGroups>
        <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
    </pluginGroups>
    <profiles>
        <profile>
            <id>sonar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <!-- Optional URL to server. Default value is http://localhost:9000 -->
                <sonar.host.url>
                  http://myserver:9000
                </sonar.host.url>
            </properties>
        </profile>
     </profiles>
</settings>

5.5.2. Używnianie

mvn sonar:sonar

5.7. Zadania

5.7.1. Instalacja

  • Zainstaluj SonarQube

Tip

User admin, Hasło admin

5.7.2. Wrzucanie wyników statycznej analizy kodu

  • Czy wcześniej zainstalowałeś Bitbucket Server?

  • Skonfiguruj aby statyczna analiza kodu uruchamiała z Jenkins

  • Skonfiguruj tak, by w każdym Pull Request jako komentarz do linii kodu wyświetlały się uwagi z SonarQube

  • Dostosuj poziom komentarzy, aby nie zalać programisty ich zbyt dużą ilością, np. wyświetlaj tylko Blocker i Critical