Übung: Erstellen einer Pipeline für Ihr Paket

Abgeschlossen

Hier rufen Sie den neuen Code des Teams für das Tailspin.SpaceGame.Web.Models-Projekt ab, das jetzt vom Tailspin.SpaceGame.Web-Projekt getrennt ist. Sie erstellen ein Azure Pipelines-Projekt für das Projekt „Models“, und es wird das Artefakt in Azure Artifacts mit einer 1.0.0-Versionsnummer in Ihrem Feed angezeigt.

Welche Änderungen wurden am Projekt vorgenommen?

Erinnern Sie sich, dass die Space Game-Website eine ASP.NET Core-App ist. Sie verwendet das MVC-Muster (Model View Controller), um Daten von der Darstellung dieser Daten auf der Benutzeroberfläche zu trennen. Andy und Mara möchten die Modellklassen in eine separate Bibliothek verschieben, damit mehrere Projekte diese Klassen verwenden können.

Zu diesem Zweck erstellen sie ein neues C#-Projekt namens Tailspin.SpaceGame.Web.Models, das nur die Modellklassen enthält. Gleichzeitig entfernen sie die Modellklassen aus ihrem bestehenden Projekt, Tailspin.SpaceGame.Web. Sie ersetzen die Modellklassen in ihrem bestehenden Projekt durch einen Verweis auf das Projekt Tailspin.SpaceGame.Web.Models.

Um diese Projekte zu erstellen, verwenden Andy und Mara zwei Pipelines, eine für jedes Projekt. Sie verfügen bereits über das erste Projekt und die dazugehörige Azure Pipelines-Konfiguration. Hier forken Sie das zweite Projekt auf GitHub und erstellen eine Azure Pipelines-Konfiguration, um es zu kompilieren. Sie veröffentlichen das resultierende Paket in Azure Artifacts.

Vorbereiten von Visual Studio Code

Zuvor haben Sie Visual Studio Code für die Arbeit mit dem Projekt Tailspin.SpaceGame.Web eingerichtet. Hier öffnen Sie eine zweite Instanz von Visual Studio Code, um mit dem Tailspin.SpaceGame.Web.Models-Projekt arbeiten zu können.

  1. Öffnen Sie eine zweite Instanz von Visual Studio Code.

  2. Öffnen Sie in Visual Studio Code das integrierte Terminal.

  3. Navigieren Sie zum übergeordneten Verzeichnis, in dem sich das Projekt mslearn-tailspin-spacegame-web befindet. Im Folgenden sehen Sie ein Beispiel für den Wechsel zum Startverzeichnis:

    cd ~
    

Herunterladen des Quellcodes

Rufen Sie den Quellcode für das Projekt Tailspin.SpaceGame.Web.Models von GitHub ab, und richten Sie Visual Studio Code ein, damit Sie mit den Dateien arbeiten können.

Erstellen eines Forks

Der erste Schritt besteht darin, das Repository mslearn-tailspin-spacegame-web-models zu forken, damit Sie mit den Quelldateien arbeiten und sie verändern können. Erinnern Sie sich, dass Mara das Verzeichnis Models in einem neuen Projekt abgelegt und aus dem Webprojekt entfernt hat.

So forken Sie das Projekt mslearn-tailspin-spacegame-web-models in Ihr GitHub-Konto

  1. Wechseln Sie in einem Webbrowser zu GitHub und melden Sie sich an.
  2. Wechseln Sie zum Projekt mslearn-tailspin-spacegame-web-models.
  3. Wählen Sie Fork aus.
  4. Um das Repository in Ihr Konto zu forken, folgen Sie den Anweisungen.

Lokales Klonen des Forks

So klonen Sie die mslearn-tailspin-spacegame-web-models-Projekte auf Ihren Computer

  1. Wechseln Sie auf GitHub zu Ihrem Fork des Projekts mslearn-tailspin-spacegame-web-models.

  2. Wählen Sie Code aus. Klicken Sie dann auf der Registerkarte HTTPS auf die Schaltfläche neben der URL, um die URL in die Zwischenablage zu kopieren.

    Screenshot showing the URL and copy button from the GitHub repository.

  3. Wechseln Sie von Visual Studio Code zum Terminalfenster, und führen Sie diesen git clone-Befehl aus. Ersetzen Sie die angezeigte URL durch den Inhalt der Zwischenablage.

    git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
    
  4. Wechseln Sie in das Verzeichnis mslearn-tailspin-spacegame-web-models. Dies ist das Basisverzeichnis Ihres Repositorys.

    cd mslearn-tailspin-spacegame-web-models
    

Öffnen des Projekts und Untersuchen der Konfiguration

In Visual Studio Code zeigt Ihr Terminalfenster auf das Stammverzeichnis des Projekts mslearn-tailspin-spacegame-web-models. Öffnen Sie das Projekt über den Datei-Explorer, damit Sie dessen Struktur anzeigen und mit Dateien arbeiten können.

  1. Die einfachste Möglichkeit zum Öffnen des Projekts besteht darin, Visual Studio Code im aktuellen Verzeichnis erneut zu öffnen. Führen Sie dazu im integrierten Terminal den folgenden Befehl aus:

    code -r .
    

    Das Verzeichnis und die Dateistruktur werden im Datei-Explorer angezeigt.

  2. Öffnen Sie das integrierte Terminal erneut. Das Terminal leitet Sie zum Stammverzeichnis Ihres Webprojekts weiter.

  3. Öffnen Sie die Datei azure-pipelines.yml.

    Sie sehen die Schritte, in denen das Paket erstellt, die Version festgelegt und das Paket zu Azure Artifacts hinzugefügt wird.

    Dieser DotNetCoreCLI@2-Task erstellt das Projekt:

    - task: DotNetCoreCLI@2
      displayName: 'Build the project - $(buildConfiguration)'
      inputs:
        command: 'build'
        arguments: '--no-restore --configuration $(buildConfiguration)'
        projects: '**/*.csproj'
    

    Dieser DotNetCoreCLI@2-Task packt das Projekt mit einer Version von 1.0.0:

    - task: DotNetCoreCLI@2
      displayName: 'Pack the project - $(buildConfiguration)'
      inputs:
        command: 'pack'
        projects: '**/*.csproj'
        arguments: '--no-build --configuration $(buildConfiguration)'
        versioningScheme: byPrereleaseNumber
        majorVersion: '1'
        minorVersion: '0'
        patchVersion: '0'
    

    Bei der Entwicklung Ihres Pakets ist es üblich, das Schema für die Versionsverwaltung byPrereleaseNumber zu verwenden. Damit wird ein eindeutiges Vorabversionssuffix, z. B. „-CI-20190621-042647“, an das Ende der Versionsnummer angefügt. Nach diesem Beispiel würde die vollständige Versionsnummer „1.0.0-CI-20190621-042647“ lauten.

    Dieser NuGetCommand@2-Task verschiebt das Paket in Ihren Tailspin.SpaceGame.Web.Models-Feed von Azure Artifacts:

    - task: NuGetCommand@2
      displayName: 'Publish NuGet package'
      inputs:
        command: push
        feedPublish: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models'
        allowPackageConflicts: true
      condition: succeeded()
    

    feedPublish gibt den Namen des Feeds an, in dem veröffentlicht werden soll. Das Format des Namens ist <projectName>/<feedName>, wobei Folgendes gilt:

    • $(System.TeamProject) ist eine vordefinierte Variable, die auf Ihren Projektnamen verweist, z. B. „Space Game – Web – Abhängigkeiten“.
    • Tailspin.SpaceGame.Web.Models ist der Feedname, den Sie in der vorherigen Übung angegeben haben.

Festlegen von Berechtigungen

Bevor Sie Ihre Pipeline einrichten und ausführen können, müssen Sie dem Builddienst die richtigen Berechtigungen erteilen.

  1. Wechseln Sie in Azure DevOps zu Ihrem Projekt.
  2. Wählen Sie im Menü auf der linken Seite Artefakte aus.
  3. Wählen Sie oben rechts auf dem Bildschirm das Symbol Einstellungen und dann die Registerkarte Berechtigungen aus.
  4. Wählen Sie die Schaltfläche Benutzer/Gruppen hinzufügen aus.
  5. Geben Sie im Feld Benutzer/Gruppen den Text Space Game - web - Dependencies Build Service ein, wählen Sie Mitwirkender als Rolle aus, und wählen Sie dann Speichern aus.

Erstellen der Pipeline in Azure Pipelines

Sie haben in einem früheren Modul erfahren, wie Sie Azure Pipelines einrichten können. Wenn Sie eine Auffrischung benötigen, wechseln Sie zu Erstellen einer Buildpipeline mit Azure Pipelines.

Im Folgenden erfahren Sie, wie Sie eine zweite Pipeline einrichten, um das Paket zu erstellen und dieses Paket in Azure Artifacts hochladen.

  1. Wechseln Sie in Azure DevOps zum Projekt Space Game – Web – Dependencies (Space Game – Web – Abhängigkeiten).

  2. Wählen Sie links im Menü Pipelines aus.

  3. Wählen Sie Neue Pipeline aus.

  4. Wählen Sie auf der Registerkarte Verbinden die Option GitHub aus.

  5. Wählen Sie auf der Registerkarte Select (Auswählen) die Option mslearn-tailspin-spacegame-web-models aus.

    Geben Sie bei entsprechender Aufforderung Ihre GitHub-Anmeldeinformationen ein. Scrollen Sie auf der angezeigten Seite nach unten, und wählen Sie Approve and install (Zustimmen und installieren) aus.

  6. Auf der Registerkarte Review (Überprüfen) wird die Datei azure-pipelines.yml der neuen Pipeline angezeigt.

  7. Klicken Sie auf Run (Ausführen).

  8. Beobachten Sie die Ausführung der Pipeline.

  9. Wechseln Sie zur Registerkarte Artifacts (Artefakte).

  10. Wählen Sie in der oberen Dropdownliste Tailspin.SpaceGame.Web.Models aus.

    A screenshot showing the location of the package from the dropdown.

    Das resultierende Paket Tailspin.SpaceGame.Web.Models wird in Azure Artifacts angezeigt.

    A screenshot of the package in Azure Artifacts, showing version 1.0 of the package.

  11. Wählen Sie das Paket aus, um zur Detailseite zu gelangen. Kopieren Sie dann die Versionsnummer an einen Speicherort, an dem Sie später leicht darauf zugreifen können.

    A screenshot of Azure Artifacts showing package details. Highlighted is the version number for the package.

    Diese Versionsnummer werden Sie in der nächsten Lerneinheit verwenden.