Bereitstellen von Pull Request-Artefakten mit klassischen Releasepipelines

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Pull Requests bieten eine effektive Möglichkeit, Codeänderungen zu überprüfen, bevor sie in die Codebasis gemergt werden. Diese Änderungen können jedoch Probleme mit sich bringen, die schwierig zu finden sein können, ohne Ihre Anwendung in einer bestimmten Umgebung zu erstellen und bereitzustellen. Pull Request-Trigger ermöglichen es Ihnen, eine Reihe von Kriterien einzurichten, die erfüllt werden müssen, bevor Sie Ihren Code bereitstellen. In diesem Artikel erfahren Sie, wie Sie Pull Request-Trigger mit Azure Repos und GitHub einrichten, um Ihr Buildartefakt bereitzustellen.

Voraussetzungen

  • Quellcode, der mit Azure Repos oder auf GitHub gehostet wird. Verwenden Sie die Beispiel-App pipelines-dotnet-core, und erstellen Sie Ihr Repository, falls Sie noch nicht über ein Repository verfügen.
  • Eine funktionierende Buildpipeline für Ihr Repository.
  • Eine klassische Releasepipeline. Richten Sie eine Releasepipeline ein, wenn Sie noch keine Releasepipeline haben.

Pull Request-Bereitstellung

Bei Pull Request-Triggern wird immer dann, wenn Sie einen neuen Pull Request für den angegebenen Branch auslösen, automatisch ein Release ausgelöst, um die Bereitstellung in den angegebenen Umgebungen zu starten. Der Bereitstellungsstatus wird dann auf der Pull Request-Seite angezeigt. Pull Request-Trigger können Ihnen dabei helfen, eine bessere Codequalität aufrechtzuerhalten, mit mehr Vertrauen zu veröffentlichen und Probleme in einem frühen Stadium des Entwicklungszyklus zu erkennen.

Das Einrichten von Pull Request-Bereitstellungen ist ein zweistufiger Prozess. Zunächst müssen Sie einen Pull Request-Trigger einrichten und dann Branchrichtlinien (Azure Repos) oder Statusprüfungen (GitHub) für Ihre Releasepipelines einrichten.

Erstellen eines Pull Request-Triggers

Ein Pull Request-Trigger erstellt jedes Mal ein Release, wenn ein neues Buildartefakt verfügbar ist.

  1. Navigieren Sie zu Ihrem Azure DevOps-Projekt, wählen Sie Pipelines>Releases und dann Ihre Releasepipeline aus.

  2. Wählen Sie das Symbol Trigger für Continuous Deployment im Abschnitt Artefakte aus.

    Screenshot: Zugreifen auf die Einstellungen des Continuous Deployment-Triggers.

  3. Wählen Sie die Umschaltfläche aus, um den Pull Request-Trigger zu aktivieren.

    Screenshot: Aktivieren von Pull Request-Triggern.

  4. Wählen Sie im Dropdownmenü Ihren Zielbranch aus.

    Screenshot: Auswählen des Zielbranch.

  5. Um Ihre Anwendung in einer bestimmten Stage bereitzustellen, müssen Sie diese v explizit aktivieren. Der Abschnitt Stages zeigt die Stages, die für Pull Request-Bereitstellungen aktiviert sind.

    Screenshot: Liste der Stages, die für Pull Request-Bereitstellungen aktiviert sind.

    Um eine Stage für Pull Request-Bereitstellungen zu aktivieren, wählen Sie das Symbol Bedingungen vor der Bereitstellung für Ihre jeweilige Stage aus, und wählen Sie dann Trigger>Nach der Veröffentlichung aus. Wählen Sie schließlich die Umschaltfläche Pull Request-Bereitstellung aus, um die Option zu aktivieren.

    Screenshot: Aktivieren einer Pull Request-Bereitstellung für eine bestimmte Stage.

Wichtig

Das Aktivieren automatischer Pull Request-Bereitstellungen für Produktionsstages wird nicht empfohlen.

Einrichten von Branchrichtlinien für Azure Repos

Sie können Branchrichtlinien verwenden, um eine Liste von Kriterien zu implementieren, die erfüllt sein müssen, damit ein Pull Request gemergt werden kann.

  1. Navigieren Sie zu Ihrem Projekt, und wählen Sie dann Repos>Branches aus, um auf die Liste der Branches für Ihr Repository zuzugreifen.

    Screenshot: Navigieren zu Branches in Azure Repos.

  2. Wählen Sie das Kontextmenü für den entsprechenden Branch ... aus, und wählen Sie dann Branchrichtlinien aus.

    Screenshot: Zugreifen auf Branchrichtlinien für einen bestimmten Branch.

  3. Wählen Sie Statusrichtlinie hinzufügen und dann einen zu überprüfenden Status aus dem Dropdownmenü aus. Wählen Sie den Status aus, der Ihrer Releasedefinition entspricht, und wählen Sie dann Speichern aus.

    Screenshot: Hinzufügen einer Statusrichtlinie.

    Hinweis

    Die Releasedefinition sollte mindestens ein Mal mit aktiviertem Pull Request-Trigger ausgeführt werden, um die Statusliste abzurufen. Weitere Informationen finden Sie unter Konfigurieren einer Branchrichtlinie für einen externen Dienst.

  4. Wenn die neue Statusrichtlinie hinzugefügt wurde, können Benutzer keine Änderungen am Zielbranch mergen, ohne dass ein Status „erfolgreich“ an den Pull Request gesendet wird.

    Screenshot: Liste der Statusrichtlinien und aktivierte Pull Request-Bereitstellungsrichtlinie.

  5. Sie können den Status Ihrer Richtlinien auf der Seite „Übersicht“ des Pull Request anzeigen. Abhängig von Ihren Richtlinieneinstellungen können Sie den bereitgestellten Releasestatus unter den Abschnitten Erforderlich, Optional oder Status anzeigen. Der Releasestatus wird jedes Mal aktualisiert, wenn die Pipeline ausgelöst wird.

    Screenshot: Status der Pull Request-Richtlinien.

Einrichten von Statusüberprüfungen für GitHub-Repositorys

Wenn Sie Statusüberprüfungen für ein GitHub-Repository aktivieren, kann ein Administrator auswählen, welche Kriterien erfüllt werden müssen, bevor ein Pull Request in den Zielbranch gemergt wird.

Hinweis

Die Statusüberprüfungen werden erst für Ihren Pull Request veröffentlicht, nachdem Ihre Releasepipeline mindestens ein Mal mit aktivierter Pull Request-Bereitstellungsbedingung ausgeführt wurde. Weitere Informationen finden Sie unter Branchschutzregeln.

Screenshot: Aktivieren von Statusüberprüfungen.

Sie können Ihre Statusüberprüfungen in Ihrem Pull Request auf der Registerkarte Unterhaltung anzeigen.

Screenshot: Status der Pull Request-Statusüberprüfungen.