neem een Scenario aan: nadat ik code heb vastgelegd op GitHub. Ik wil mijn code kwaliteit volgen, weten bugs, kwetsbaarheden, code geuren, enz. (statische code analyse) voor mijn code voordat ik mijn code automatisch bouw met Jenkins en Ik wil dat deze activiteit uit te voeren elke keer dat ik commit code.
in dit scenario voor continue inspectie en continue integratie van de code. We zullen de best practice volgen met behulp van GitHub-Jenkins-SonarQube integratie voor dit scenario.
stroom : Zodra Ontwikkelaar commits de code naar GitHub, Jenkins zal fetch/pull de code van de repository en zal statische code analyse uit te voeren met behulp van Sonar Scanner en stuur analyserapport naar SonarQube Server dan zal het automatisch bouwen van de project code.
vereiste :
- Jenkins is ingesteld met GitHub met een aantal build trigger (in mijn geval zijn Poll SCM) als dit niet is gedaan volg dan deze tutorial— https://medium.com/@amitvermaa93/jenkins-github-with-java-maven-project-c17cdba7062
- SonarQube is actief en je hebt Sonar Scanner setup in het systeem. Zo niet volg dan de tutorial- https://medium.com/@amitvermaa93/sonarqube-setup-windows-e6a6c01be025
Stap 1 Open SonarQube server-Ga naar Beheer > klik op Beveiliging > gebruikers > klik op Tokens (afbeelding 1)> genereer token met een bepaalde naam > kopieer het token (afbeelding 2), Het zal gebruikt worden in Jenkins voor Sonar authenticatie.
Stap 2. Setup SonarQube met Jenkins – Ga naar Beheren Jenkins > Configure system > SonarQube server sectie > Toevoegen SonarQube > Naam het, bieden een Server Url: http://<IP>:<poort> > en authenticatie token gekopieerd van SonarQube Server > Toepassen en Opslaan
Stap 3. Installeer SonarQube plugin naar Jenkins. Ga naar Beheer Jenkins > Beheer Plugins > beschikbaar > zoek naar SonarQube Scanner> Install.
Download SonarScanner als u https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
niet hebt, Configureer de Sonarscanner in Jenkins : Ga naar Schurft Jenkins > Globale Configuratie Hulpprogramma > Ga voor SonarQube Scanner > Toevoegen sonar scanner > naam, verwijder het vinkje als u al sonar, anders wordt het automatisch downloaden voor u en uw sonar het instellen van de scanner zal worden gedaan(in mijn geval, ik heb al) > geef het pad naar de sonar runner thuis als op de onderstaande afbeelding
Stap 4. Maak een taak aan-nieuw Item > naam en selecteer een projecttype (in mijn geval selecteer ik Maven project u kunt ook kiezen voor freestyle)
Stap 5 Stel Git in onder SCM sectie en gebruik * * * * * voor Poll SCM onder Build Trigger sectie. Onder Build Environment sectie pre-buid step > toevoegen selecteer Uitvoeren SonarQube Scanner
Stap 6 Maak een .eigenschappen bestand op elke locatie en bieden pad op de taak zoals hieronder (Ik heb het gemaakt in Jenkins workspace map). Dit eigenschappenbestand zal projectspecifiek zijn. Het bevat bepaalde sonar-eigenschappen, zoals welke map te scannen, welke map uit te sluiten bij het scannen, Wat is de projectsleutel en nog veel meer kunt u het zien van https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
binnen sonar-scanner.eigenschappen schrijf hieronder code –
sonar.projectKey=github-jenkins-sonar
sonar.bron=./ src
om het simpel te houden heb ik slechts twee eigenschappen gebruikt(zoals hierboven), sonar.projectKey property zal een project in uw SonarQube server met dezelfde naam te maken als het project niet bestaan anders zal het analyse toe te voegen aan het, sonar.sources bepaalt welke map moet worden gescand. U kunt ofwel een relatief pad van uw Jenkins Job workspace opgeven of een feitelijk pad naar de map die u wilt scannen.
sinds ik heb gebruikt ./ src (gebruik / voor windows pad ) dat betekent dat ik momenteel op mijn Job werkruimte dwz op C:\Users\Amit Verma\.jenkins \ workspace \ Jenkins-GitHub-SonarQube locatie en vanaf hier geef ik het pad naar de map(src) die ik wil scannen.
Stap 7. Bouw de baan op. Na een succesvolle build als je kunt zien build logs zal u de bestanden en de map die het heeft gescand en na het scannen heeft het analyserapport gepost SonarQube Server die u hebt geà ntegreerd.
Stap 8. Vanuit job dashboard, klik op sonar Pictogram of navigeer naar Sonar server klik op projecten (op header)u ziet een nieuw project met dezelfde Project sleutel die u hebt gegeven in sonar-scanner.eigenschappen bestand. Nu kunt u binnen uw project gaan en het rapport analyseren