Blog

Integration von SonarCloud mit Azure DevOps

Marius Boden

Marius Boden

Aktualisiert Oktober 15, 2025
4 Minuten

Ich hatte kürzlich ein Gespräch mit einem Kunden, der mit Azure DevOps arbeitet und SonarCloud implementieren möchte. Mein Kollege hatte schon vor 4 Jahren einen Artikel darüber geschrieben, aber die Tools entwickeln sich weiter, daher hier ein Update.

SonarCloud hat Sie hervorragend durch die Einrichtung auf ihrer Seite geführt (siehe die Dokumente). Es gibt jedoch eine Lücke bei dem, was Sie auf der Azure DevOps-Seite tun müssen. Mein Ziel ist es, diese Lücke zu schließen.

Haupt

Ich gehe davon aus, dass Sie bereits eine Organisation und Ihr Projekt in SonarCloud eingerichtet haben. Falls nicht, tun Sie dies und bewahren Sie das erforderliche Azure DevOps PAT (Personal Access Token) mit den Code-Berechtigungen (Lesen und Schreiben) für die spätere Verwendung auf. Gut, jetzt werden wir jedes Tool für die Interaktion mit dem anderen aktivieren.

Aktivieren Sie SonarCloud für die Pull Request-Analyse mit Azure DevOps

Aktivieren Sie zunächst SonarCloud für die Interaktion mit Azure DevOps. Dies können Sie auf der Registerkarte Verwaltung einrichten.

Sonarwolke Allgemeine Einstellungen Markierungen

Wählen Sie im Pull Request-Menü den Provider Azure DevOps Service und geben Sie ein Azure DevOps Personal Access Token mit Code (Lese- und Schreibberechtigung) ein (ich habe dasselbe wie beim Importieren der Organisation verwendet).

Vergessen Sie nicht, auf beide Speicherschaltflächen zu klicken!!!

sonar cloud allgemeine einstellungen pull request marker

Auslösen von SonarCloud-Analysen aus Azure DevOps Pipelines

Richten Sie anschließend Azure DevOps für die Interaktion mit SonarCloud ein. Gehen Sie zurück zur Projektstartseite und wählen Sie Mit Azure DevOps Pipeline als Ihre Analysemethode.

Sonarwolken-Einrichtung Pipeline-Markierungen

Diese führt Sie durch die Installation der notwendigen Erweiterung in Ihrer AzureDevOps-Organisation und gibt Ihnen ein Token, mit dem Sie eine Dienstverbindung zu SonarCloud in Ihrem Azure DevOps-Projekt erstellen können.

Sonarwolken-Einrichtung Pipeline-Markierungen
Sonarwolken-Einrichtung Pipeline-Markierungen

Da ich ein JavaScript-Projekt analysieren möchte, wähle ich die Option Andere, um meine Pipeline zu konfigurieren. Dadurch erhalte ich detaillierte Anweisungen zur Konfiguration der SonarCloudPrepare-Aufgabe .

Sonarwolken-Einrichtung Pipeline-Markierungen

Die Pipeline für mein JS-Projekt sieht folgendermaßen aus:

# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger:
  branches:
    include:
    - 'main'

pool:
  vmImage: ubuntu-latest

steps:
- checkout: self
  fetchDepth: 0

- task: NodeTool@0
  inputs:
    versionSpec: '16.x'
  displayName: 'Install Node.js'

- task: SonarCloudPrepare@1
  inputs:
    SonarCloud: 'SonarCloud' # name of your SonarCloud service connection
    organization: 'mboden' # name of the SonarCloud organization as given above
    scannerMode: 'CLI'
    projectKey: 'mboden_sonarcloud-demo' # SonarCloud project key as given above
    projectName: 'sonarcloud-demo' # SonarCloud project name as given above
  displayName: 'SonarCloud Configure'

- script: |
    npm install
  displayName: 'Install Dependencies'

- script: |
    npm run tslint
  displayName: 'Lint'

- script: |
    npm run build
  displayName: 'Build'

- script: |
    npm run test
  displayName: 'Test'

- task: SonarCloudAnalyze@1
  inputs:
    jdkversion: 'JAVA_HOME_11_X64'
  displayName: 'SonarCloud Analyze'

- task: SonarCloudPublish@1
  inputs:
    pollingTimeoutSec: '300'
  displayName: 'SonarCloud Publish'

Wenn Sie diese Pipeline in Azure DevOps einrichten und einmal ausführen, werden bereits einige Ergebnisse für den Hauptzweig in SonarCloud angezeigt.

Sonarwolke Hauptzweig

Jetzt möchte ich einen Themenzweig analysieren und die Pull Request Quality Gates von SonarCloud nutzen. Dazu muss ich einige Zweigrichtlinien für den Hauptzweig einrichten.

azure devops branch policies marker

Durch die Aktivierung von Check for comment resolution muss jeder Prüfer der Pull-Anfrage die von SonarCloud in der Pull-Anfrage gemachten Kommentare auflösen. Um die Überprüfung von Pull Requests in SonarCloud zu aktivieren, muss eine Build-Validierung für die Pipeline eingerichtet werden.

azure devops branch policies Markierungen hinzufügen

Ich wähle die Sonarcloud-Demo-Pipeline, die ich zuvor erstellt habe, lasse alle Einstellungen auf den Standardwerten und gebe ihr einen schönen Anzeigenamen.

azure devops build policy marker

Jetzt ist alles vorbereitet, um eine Verzweigung zu erstellen, einen Code einzuchecken, der die Validierung nicht besteht, und ihn in das Repo zu verschieben. Anschließend werde ich eine Pull-Anfrage erstellen, um zu sehen, welche Quality Gates fehlgeschlagen sind. Wie wir sehen können, hat SonarCloud alle Prüfungen durchgeführt und wir können nicht nur sehen, dass die Quality Gates nicht bestanden wurden, sondern SonarCloud hat auch Kommentare mit den notwendigen Änderungen erstellt.

azure devops pull request markers

Ein Klick auf Quality Gate Failed leitet Sie direkt zu SonarCloud weiter.

Ergebnis der Sonarwolke

Nachdem Sie dies einmal für eine Pull-Anfrage ausgeführt haben, erhält Azure Devops die ersten Analyseergebnisse und Sie können Statusprüfungen einrichten. Dadurch wird verhindert, dass die Pull-Anfrage zusammengeführt wird, solange die Quality Gates fehlgeschlagen sind. Wechseln Sie dazu erneut zu den Zweigrichtlinieneinstellungen für Ihren Standardzweig.

Azure Devops Branch Policies Statusprüfungsmarkierungen hinzufügen

Wählen Sie die Statusprüfung aus und geben Sie entweder ein benutzerdefiniertes Genre und einen Namen an oder belassen Sie es bei den Standardeinstellungen. Klicken Sie auf Speichern.

Hinweis: Die Pipeline muss mindestens einmal für einen Pull Request laufen, bevor die entsprechenden Statusprüfungen in der Dropdown-Liste erscheinen.

azure devops status check marker

Das war's! Wir haben die Code-Qualitätsprüfungen von SonarCloud erfolgreich in die Azure DevOps-Pipelines und Pull-Anfragen integriert und verhindern, dass Pull-Anfragen zusammengeführt werden, bevor die Quality Gates bestanden und erkannte Probleme behoben sind.

Links

Sonarcloud-Projekt: Sonarcloud AzurePipe Projekt

Azure DevOps Projekt: Azure DevOps Sonarcloud Demo-Projekt

Azure DevOps Pull Request: Azure DevOps Pull-Anfrage 2

Verfasst von

Marius Boden

Marius Boden is passionate about technology and software development. Being a hybrid of developer, architect and DevOps consultant, he can keep track of the big picture and help teams at any point in the development lifecycle to get to the next level.

Contact

Let’s discuss how we can support your journey.