Antag ett Scenario: efter att jag begått kod till GitHub. Jag vill följa min kodkvalitet, känna till buggar, sårbarheter, kodlukter etc. (statisk kodanalys) för min kod innan jag bygger min kod automatiskt med Jenkins och jag vill att den här aktiviteten ska utföra varje gång jag begår kod.
i detta scenario för kontinuerlig inspektion och kontinuerlig Integration av koden. Vi kommer att följa bästa praxis med Github-Jenkins-SonarQube Integration för detta scenario.
flöde : Så snart utvecklaren förbinder koden till GitHub, kommer Jenkins hämta / dra koden från förvaret och kommer att utföra statisk kodanalys med hjälp av Sonar Scanner och skicka analysrapport till SonarQube Server då det kommer automatiskt att bygga projektkoden.
förutsättning :
- Jenkins är inställd med GitHub med någon build trigger (i mitt fall sin enkät SCM) om detta inte görs följ denna handledning— https://medium.com/@amitvermaa93/jenkins-github-with-java-maven-project-c17cdba7062
- SonarQube körs och du har Inställning av Sonarskanner i systemet. Om inte följ handledningen- https://medium.com/@amitvermaa93/sonarqube-setup-windows-e6a6c01be025
Steg 1. Öppna SonarQube server-gå till Administration > klicka på säkerhet > användare > klicka på Tokens (bild 1)> generera token med något namn > kopiera token (bild 2), den kommer att användas i Jenkins för Sonarautentisering.
Steg 2. Setup SonarQube med Jenkins-gå till Hantera Jenkins > konfigurera systemet > SonarQube server avsnitt > Lägg SonarQube > namnge det, ge Server Url som http: / / <IP>:<port> > och autentiseringstoken kopieras från SonarQube Server > tillämpa och spara
steg 3. Installera SonarQube plugin till Jenkins. Gå till Hantera Jenkins > hantera Plugins > tillgänglig > Sök efter SonarQube Scanner> installera.
ladda ner SonarScanner om du inte har https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
konfigurera Sonar Scanner i Jenkins : Gå till Mange Jenkins > Global Tool Configuration > Bläddra för SonarQube Scanner > Lägg till sonar scanner > namnge det, avmarkera om du redan har sonar annars kommer det automatiskt att hämtas för dig och din sonar scanner setup kommer att göras (i mitt fall har jag redan) > ge sökvägen till sonar runner hem som i bilden nedan
steg 4. Skapa ett jobb-nytt objekt > namn och välj en projekttyp (i mitt fall väljer jag Maven-projekt kan du också välja freestyle)
Steg 5. Ställ in Git under SCM-sektionen och använd * * * * * för Poll SCM under Build Trigger-sektionen. Under Build Environment avsnitt Lägg pre-buid steg > välj Kör SonarQube Scanner
steg 6. Skapa en .egenskaper fil på vilken plats som helst och ger sökväg på uppgiften enligt nedan(Jag har skapat den i Jenkins workspace mapp). Den här egenskapsfilen kommer att vara projektspecifik. Den innehåller vissa ekolodegenskaper som vilken mapp som ska skannas, vilken mapp som ska uteslutas vid skanning, vad är projektnyckeln och många fler kan du se den från https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
inuti sonar-scanner.egenskaper skriv under kod –
sonar.projectKey=github-jenkins-ekolod
ekolod.källa=./ src
för att hålla det enkelt har jag bara använt två egenskaper(som ovan), sonar.projectKey property skapar ett projekt i din SonarQube-server med samma namn om project inte existerar annars kommer det att lägga till analys till det, sonar.källor definierar vilken mapp som ska skannas. Du kan ange antingen relativ sökväg från din Jenkins Jobbarbetsyta eller faktisk sökväg till mappen du vill skanna.
eftersom jag har använt ./ src (använd / för windows-sökväg ) det betyder att jag för närvarande är på mitt arbetsområde, dvs på C:\Users\Amit Verma\.jenkins \ workspace \ Jenkins-GitHub-SonarQube plats och härifrån ger jag sökvägen till mappen(src) jag vill skanna.
Steg 7. Bygg jobbet. Efter lyckad build om du kan se bygga loggar Det kommer att visa dig de filer och mappar som den har skannat och efter skanning har skrivit analysrapporten till SonarQube Server du har integrerat.
steg 8. Från job dashboard, klicka på sonarikonen eller navigera till Sonarserver klicka på projekt (på huvudet) du kommer att se ett nytt projekt med samma projektnyckel som du har gett i sonar-scanner.egenskaper fil. Nu kan du gå in i ditt projekt och analysera rapporten