In der sich ständig weiterentwickelnden Welt der Softwareentwicklung kann die Aufrechterhaltung eines qualitativ hochwertigen Codes eine anspruchsvolle Aufgabe sein. Codequalitätstools wie SonarQube und GitHub Actions sind in diesem komplexen Szenario jedoch hilfreich.
In Kombination bilden SonarQube und GitHub Actions eine robuste Infrastruktur, die Codequalität und effiziente Arbeitsabläufe fördert. Diese Integration bietet Entwicklern folgende Vorteile:
- Codeüberprüfungen automatisieren
- Identifizierung von Verbesserungsbereichen
- Rationalisierung des Codebereitstellungsprozesses
Tatsächlich verändern sie die Art und Weise, wie Entwickler an Codequalität und Workflow-Effizienz herangehen.
Was ist SonarQube
SonarQube ist eine Open-Source-Plattform, die eine kontinuierliche Codequalitätsprüfung ermöglicht und automatische Überprüfungen durchführt. Es hebt Fehler hervor, erkennt Sicherheitslücken und identifiziert Code-Smells in über 20 Programmiersprachen.
SonarQube und Codequalität
SonarQube bietet eine ganzheitliche und detaillierte Ansicht des Gesundheitszustands Ihrer Anwendung. Es zeigt an, welche Komponenten Ihres Codes repariert werden müssen, und bietet Verbesserungsvorschläge, um Ihren Code sicherer und effizienter zu machen. Folglich können Sie mit SonarQube genau sehen, wo die Probleme liegen und wie Sie sie beheben können.
Darüber hinaus kennzeichnet SonarQube die Probleme nicht nur nach dem Scannen des Codes, sondern priorisiert sie auch anhand ihrer Auswirkungen und der einfachen Korrektur. Dieser Aspekt macht SonarQube zu einem effektiven Codequalitätstool, das Ihnen oder Ihren Teams dabei hilft, den Zeit- und Arbeitsaufwand zu planen, der zur effektiven Aufrechterhaltung der Codequalität erforderlich ist.
SonarQube-Installationsübersicht
Die Installation von SonarQube ist ein relativ unkomplizierter Vorgang, obwohl die erforderlichen Schritte je nach Betriebssystem (OS) und Entwicklungsumgebung variieren können. Bevor wir uns jedoch näher mit der Installation von SonarQube befassen, sollten Sie wissen, dass dieses Codequalitätstool in drei verschiedenen Editionen erhältlich ist, die jeweils auf unterschiedliche Entwicklungsanforderungen zugeschnitten sind:
- Community Edition : Dies ist die kostenlose Version von SonarQube, die die grundlegenden Funktionen für das Codequalitätsmanagement bietet. Sie ist ideal für kleine Teams oder einzelne Entwickler, die gerade erst mit SonarQube beginnen.
- Developer Edition : Diese Version bietet erweiterte Funktionen, darunter Zweiganalyse und Integration mit gängigen IDEs. Sie ist für professionelle Entwicklungsteams konzipiert, die erweiterte Funktionen zur Codequalitätsverwaltung suchen.
- Enterprise Edition : Als Version mit den meisten Funktionen bietet die Enterprise Edition Funktionen wie Sicherheitsberichte, Portfoliomanagement und Unterstützung für große Entwicklungsteams. Diese Edition richtet sich an große Organisationen mit umfangreichen Codebasen und erweiterten Anforderungen an die Codequalitätskontrolle.
Zusätzlich zu den Editionen Community, Developer und Enterprise bietet SonarQube auch eine Cloud-basierte Version namens SonarCloud an . SonarCloud bietet den Komfort und die Flexibilität einer Cloud-basierten Lösung und macht jegliche Art von Installation oder Serverwartung überflüssig.
Im Wesentlichen ist SonarCloud speziell für Teams und Organisationen konzipiert, die Cloud-Technologien nutzen und an einem „Software-as-a-Service“-Modell (SaaS) interessiert sind. Es bietet automatisierte Codeüberprüfungs- und Qualitätstestfunktionen, ähnlich wie seine Gegenstücke vor Ort.
Der klare Vorteil liegt jedoch darin, dass sich Entwickler auf ihren Code konzentrieren können, während die Plattform sich um die Durchführung der Analysen und die Wartung des Dienstes kümmert.
Daher stellt SonarCloud eine hervorragende Option für Teams dar, die nach einem effizienten, skalierbaren und wartungsfreien Tool zur Aufrechterhaltung ihrer Codequalität suchen.
Um es auszuprobieren, verwenden Sie diese Sonarqube-Installationsanleitung, die auf der offiziellen Website verfügbar ist.
Was sind GitHub Actions?
GitHub Actions ist eine robuste CI/CD-Lösung, mit der Entwickler ihre Softwareentwicklungs-Workflows automatisieren können. Dies umfasst alles von der Durchführung von Routineaufgaben wie Codekompilierung und Unit-Tests bis hin zur Bereitstellung von Anwendungen auf Produktionsservern. Dies ist insbesondere in der sich schnell verändernden Landschaft der Softwareentwicklung von entscheidender Bedeutung, in der Automatisierung und effiziente Workflows von größter Bedeutung sind.
Durch die Möglichkeit, diese Aufgaben zu automatisieren, lassen sich erhebliche Zeit- und Ressourceneinsparungen erzielen. So können sich die Teams auf die Kernarbeit bei der Entwicklung konzentrieren, statt sich in Routineprozessen zu verzetteln.
Die Vielseitigkeit von GitHub Actions geht jedoch über CI/CD hinaus. Es bietet eine flexible Plattform, auf der Workflows an jedes Ereignis angepasst werden können, das in einem GitHub-Repository auftritt, z. B. Pull Requests oder Problemkommentare. Dies macht es zu einem äußerst leistungsstarken Tool zur Automatisierung einer Vielzahl von Aufgaben, die sich nicht nur auf Software-Builds und -Tests, sondern auch auf Projektmanagement und Koordinierungsaktivitäten erstrecken.
Darüber hinaus können Sie mit GitHub Actions Ihre Anwendungen plattformübergreifend und in mehreren Sprachen erstellen und testen. Diese plattformübergreifende Unterstützung stellt sicher, dass Anwendungen auf verschiedenen Betriebssystemen und in verschiedenen Umgebungen reibungslos funktionieren.
So installieren und führen Sie SonarQube und GitHub Actions aus, um die Codequalität zu optimieren
SonarQube-Installationshandbuch
Der Installationsprozess für jede der oben genannten SonarQube-Editionen ist ähnlich. Der Hauptunterschied besteht in den Lizenzanforderungen für die Developer- und Enterprise-Editionen. Für diese Anleitung haben wir Sonar Community in einem Docker-Container verwendet.
In diesem Beispiel haben wir einen Server auf AWS EC2 mit installierter Docker-Engine, mit 2 VCPU und 4 GB RAM sowie 8 GB Festplatte verwendet. Sie können jedoch auch einen Anbieter mit kostenlosen Credits verwenden, zum Beispiel:
Befolgen Sie Docker-Compose, um Ihr Studienlabor zu erleichtern:
Führen Sie nun Folgendes aus:
Versuchen Sie in ein paar Sekunden, auf Ihre öffentliche IP zuzugreifen. Denken Sie daran, dass diese Konfiguration auf Port 9000 für den Zugriff auf die SonarQube-Konsole konfiguriert ist. Sie können dies jedoch bei Bedarf ändern. Wenn alles gut funktioniert hat, wird dieser Bildschirm angezeigt:
Hier ist der Standardzugriff admin/admin:
Als bewährte Vorgehensweise verlangt die Plattform, dass Sie Ihr Passwort aktualisieren.
Durchführen einer statischen Codeanalyse
Nachdem SonarQube installiert und eingerichtet ist, besteht der nächste Schritt darin, eine statische Codeanalyse durchzuführen. Diese Analyse ermöglicht es Ihnen, Codequalitäts- und Sicherheitsprobleme zu identifizieren. Standardmäßig hat SonarQube bereits vorkonfigurierte Prüfregeln, die Ihre Arbeit erheblich beschleunigen. Sie können diese jedoch bei Bedarf ändern.
In diesem Fall arbeiten wir mit Python, also schauen wir uns die Python-Regeln an;
Es ist möglich, eigene Prüfprofile oder sogar Qualitätstore mit benutzerdefinierten Regeln zu erstellen, die zu 100 % auf Ihr Szenario zugeschnitten sind.
Unten sehen Sie ein Bild der Ergebnisse nach Abschluss der Analyse.
SonarQube mit GitHub Actions integrieren
Die Integration von SonarQube mit GitHub Actions erleichtert die Ausführung einer automatischen Codeanalyse bei jeder Push- oder Pull-Anforderung. Dies hilft Ihnen, die Codequalität während des gesamten Softwarelebenszyklus sicherzustellen. Nachfolgend erfahren Sie, wie das geht:
Schritt 1: Da es kein Projekt gibt, bietet Ihnen die Plattform eine schnelle Möglichkeit, loszulegen. Wählen Sie „Manuell starten“ aus:
Schritt 2; Lassen Sie uns für dieses Beispiel die TODO-App verwenden;
Es ist sehr wichtig, die Branche zu definieren, in der Sie arbeiten.
Schritt 3: Lassen Sie uns als Nächstes diesen ersten Moment mit der globalen Konfiguration fortsetzen, da dies nur ein Beispiel ist, Sie aber Prüfmodelle auswählen können.
Schritt 4: Gehen Sie jetzt zur Integration mit Github Actions, indem Sie einfach auf das Feld mit der Bezeichnung „GitHub Actions“ klicken.
Es werden wichtige Informationen zur Integration bereitgestellt, z. B. die Erstellung von Geheimnissen für diese Verbindung. Beachten Sie, dass auch die Erstellung des Zugriffstokens für SonarQube erforderlich ist.
Schritt 6: Wenn Sie mit der Integration fortfahren, müssen Sie die zu prüfende Sprache auswählen. In diesem Beispiel verwenden wir Python, daher haben wir die letzte Option gewählt.
Bei der Auswahl der Programmiersprache zeigt die Plattform die in GitHub Actions zu konfigurierenden Schritte an. Es ist notwendig, eine Datei im Stammverzeichnis des Projekts mit dem Namen „sonar-project-properties“ hinzuzufügen.
Einrichten von Github-Aktionen zur Aufrechterhaltung der Codequalität
Erstellen eines Workflows
Nachdem GitHub Actions eingerichtet ist, können wir nun unseren ersten Workflow erstellen. Aber wo fängt man an?
Wie SonarQube erfordert auch GitHub Actions eine Ersteinrichtung. Diese Einrichtung kann je nach den Anforderungen Ihres Projekts variieren.
Navigieren Sie zu Ihrem Repo und forken Sie es.
Gehen Sie zum Menü „Einstellungen“;
Jetzt erstellen wir SONAR_TOKEN und SONAR_HOST_URL
Nachdem Sie die Geheimnisse erstellt haben, gehen Sie zum Aktionsmenü.
Kopieren Sie das Skript des SonarQube-Vorschlags und fügen Sie es ein.
Wählen Sie den Namen Ihres Workflows und übernehmen Sie die Änderungen.
Herzlichen Glückwunsch, wenn Sie es bis hierher geschafft haben, denn wir konnten SonarQube in GitHub Actions integrieren.
Wir sind jedoch noch nicht fertig.
Interpretation der SonarQube-Ergebnisse
Die von SonarQube bereitgestellten Analyseergebnisse sind umfassend und bieten einen klaren Überblick über die in unserem Code vorhandenen Probleme. Aber wie interpretieren Sie all diese Daten?
In der Projektzusammenfassung auf dem Dashboard von SonarQube sehen Sie eine kurze Zusammenfassung Ihres Projekts.
Beim Zugriff auf
die Projektdetails haben wir die wichtigsten von Sonar analysierten Themen im Blick, wie zum Beispiel:
- Insekten
- Sicherheitslücken
- Testabdeckung
- Code-Geruch
- Doppelte Zeilen
- Anzahl der Zeilen
- Die neuesten Codeaktualisierungen im Projekt und ob weitere Codezeilen hinzugefügt wurden.
Durch Durchsuchen der einzelnen Themen können Sie weitere Einzelheiten zu den analysierten Themen erhalten:
Etwas
sehr Cooles ist, dass SonarQube in mehreren Fällen eine mögliche Lösung anzeigt, um Ihren Code basierend auf mehreren Best-Practice-Standards anzupassen.
Vorteile Code-Qualitätsmanagement mit Sonarqube und GitHub Actions
Die Integration von SonarQube und GitHub Actions bietet zahlreiche Vorteile, die über die Bereiche Zeitersparnis und verbesserte Codequalität hinausgehen und auch Aspekte der Softwaresicherheit und Teamproduktivität umfassen.
Im Kern erzeugt diese Integration eine leistungsstarke Synergie, die den Codeüberprüfungsprozess rationalisiert. Die robuste Codeanalyse von SonarQube in Kombination mit den Automatisierungsfunktionen von Github Actions bietet kontinuierliches Feedback zur Codequalität.
Dieses unmittelbare Feedback ermöglicht es Entwicklern, Codierungsfehler, Sicherheitslücken und Code-Smells umgehend zu erkennen und zu beheben. Dadurch wird das Risiko verringert, dass diese Probleme in die späteren Phasen des Software Development Lifecycle (SDLC) vordringen, wo ihre Lösung komplexer und kostspieliger ist.
Neben der Codequalität und -sicherheit fördert diese Integration auch die Produktivität des Teams. Durch die Automatisierung von Codeüberprüfungen können Entwickler ihre Aufmerksamkeit und Kreativität auf das Codieren, Innovieren und Problemlösen konzentrieren, anstatt sich in den Details manueller Codeüberprüfungen zu verlieren.
Darüber hinaus erleichtern die klaren Visualisierungen und umsetzbaren Erkenntnisse von SonarQube den Teammitgliedern ein schnelles Verständnis des Codequalitätsstatus und fördern so Transparenz und effektive Kommunikation innerhalb des Teams.
Im Wesentlichen fördert die Integration von SonarQube und GitHub Actions eine Kultur der kontinuierlichen Verbesserung und führt zu höherer Codequalität, verbesserter Sicherheit und gesteigerter Teamproduktivität.
Mehr lesen: Was ist ein gRPC-Client und wie funktioniert er?
Nachfolgend finden Sie einen tabellarischen Vergleich der Vorteile der Integration von SonarQube mit GitHub Actions für das Codequalitätsmanagement.
Teams, die SonarQube und Github Actions verwenden | Teams, die Sonarqube und GitHub Actions nicht verwenden | |
Codequalität | Verbessert durch regelmäßige automatisierte Überprüfungen. | Kann aufgrund fehlender kontinuierlicher Kontrollen niedriger sein |
Produktivität | Erhöht durch automatisierte Prozesse. | Könnte aufgrund manueller Prozesse niedriger sein. |
Sicherheit | Verbessert durch regelmäßige Erkennung von Sicherheitslücken. | Ohne automatisierte Sicherheitsüberprüfungen möglicherweise weniger sicher. |
Workflow-Effizienz | Verbessert durch Automatisierung und optimierte Arbeitsabläufe. | Ohne Automatisierung möglicherweise weniger effizient. |
Lernkurve | Das Erlernen und Implementieren der Tools erfordert Zeit. | Keine Zeitverschwendung beim Erlernen neuer Tools. |
Fazit
Die Integration von SonarQube mit GitHub Actions stellt einen grundlegenden Wandel im Bereich der Softwareentwicklung dar.
Zusammen bilden diese Tools eine leistungsstarke Allianz und bieten eine Reihe von Funktionen, die die Codequalität steigern, die Sicherheit erhöhen und die allgemeine Workflow-Effizienz verbessern.
Die Leistungsfähigkeit von SonarQube bei der kontinuierlichen Codeprüfung, gepaart mit der Kompetenz von GitHub Actions bei der Workflow-Automatisierung, schafft eine dynamische Plattform, auf der Code nicht nur geschrieben, sondern auch kontinuierlich ausgewertet und verbessert wird.
Diese symbiotische Beziehung stellt sicher, dass die Codequalität kein einmaliger Kontrollpunkt, sondern ein konstantes Element des Entwicklungsprozesses ist.
Darüber hinaus sorgen die erhöhten Sicherheitsmaßnahmen durch die sorgfältige Schwachstellenerkennung von SonarQube für ein neues Maß an Schutz für die Entwicklungsumgebung.
Diese Wachsamkeit führt in Kombination mit der flexiblen ereignisgesteuerten Automatisierung von GitHub Actions zu robusten und sicheren CI/CD-Pipelines.
Bluelight Consulting ist ein Nearshore-DevOps- und Software-Outsourcing-Unternehmen, das Startups, SaaS und Unternehmen mit innovativen Lösungen unterstützt.
Mit Nearshore Boost, unserem Nearshore-Softwareentwicklungsdienst, können Sie kostengünstiger als die Einstellung von Mitarbeitern im eigenen Unternehmen sicherstellen, dass Ihr Unternehmen mit einem erweiterten Team und einer größeren globalen Präsenz wettbewerbsfähig bleibt und flexibel auf die Bedürfnisse Ihrer Kunden reagieren kann.
Erfahren Sie mehr über unsere Dienstleistungen, indem Sie noch heute eine kostenlose Beratung bei uns buchen!