Übung: Pushen einer Änderung zum Paket

Abgeschlossen

An diesem Punkt verfügen Sie über zwei Pipelines. Eine veröffentlicht das Modellpaket in Azure Artifacts, und eine ist für die Space Game-Web-App zuständig. Die Buildkonfiguration für die Web-App verweist auf das Modellpaket, damit sie auf die Modellklassen zugreifen kann.

Hier üben Sie das Aktualisieren des Modellpakets, und Sie erfahren, wie Sie diese Änderung über die Web-App nutzen.

Dazu fügen Sie zunächst einer der Modellklassen eine Eigenschaft hinzu und erhöhen dann die Paketversion. Anschließend übermitteln Sie die Änderung an GitHub, damit die Pipeline das Paket erstellen und es in Azure Artifacts veröffentlichen kann.

Sie aktualisieren dann die Web-App, um auf die neuere Versionsnummer des Modellpakets zu verweisen, sodass die Web-App die hinzugefügte Eigenschaft verwenden kann.

Erstellen einer Verzweigung

Beginnen wir damit, einen Branch zu erstellen, der unsere Arbeit aufnimmt. Erstellen Sie einen Branch namens add-game-style, der auf dem Branch main basiert.

Zu diesem Zeitpunkt haben Sie zwei Kopien von Visual Studio Code geöffnet, eine für das Projekt Tailspin.SpaceGame.Web.Models und eine für das Space Game-Web-App-Projekt, Tailspin.SpaceGame.Web. Hier arbeiten Sie mit der Kopie für das Projekt Tailspin.SpaceGame.Web.Models.

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

  2. Führen Sie im Terminal den folgenden Befehl git checkout aus, um einen Branch namens add-game-style zu erstellen.

    git checkout -B add-game-style
    

Hinzufügen einer Eigenschaft zum Modellpaket

Fügen Sie einer der Modellklassen die Eigenschaft Score hinzu, die den Spielstil (bzw. den Schwierigkeitsgrad) angibt, mit dem der Spielstand verknüpft ist.

Hier arbeiten Sie mit der Kopie von Visual Studio Code für das Projekt Tailspin.SpaceGame.Web.Models.

  1. Öffnen Sie in Visual Studio Code Tailspin.SpaceGame.Web.Models/Models/Score.cs. Fügen Sie die folgende hervorgehobene Eigenschaft zur Liste der bereits vorhandenen Eigenschaften hinzu.

    using System.Text.Json.Serialization;
    
    namespace TailSpin.SpaceGame.Web.Models
    {
        public class Score : Model
        {
            // The ID of the player profile associated with this score.
            [JsonPropertyName("profileId")]
            public string ProfileId { get; set; }
    
            // The score value.
            [JsonPropertyName("score")]
            public int HighScore { get; set; }
    
            // The game mode the score is associated with.
            [JsonPropertyName("gameMode")]
            public string GameMode { get; set; }
    
            // The game region (map) the score is associated with.
            [JsonPropertyName("gameRegion")]
            public string GameRegion { get; set; }
    
            // The game style (difficulty) the score is associated with.
            [JsonPropertyName("gameStyle")]
            public string GameStyle { get; set; }
        }
    }
    

    Hinweis

    Sie nehmen eine Änderung an einer Datei im Projekt vor, um zu veranschaulichen, wo Sie die Versionsnummer erhöhen. Wir werden die Web-App jedoch nicht aktualisieren, um die neue Eigenschaft zu verwenden.

  2. Speichern Sie die Datei .

  3. Erstellen Sie das Projekt, um Ihre Arbeit zu überprüfen:

    dotnet build --configuration Release
    

    In der Praxis führen Sie möglicherweise zusätzliche Überprüfungsschritte durch, z. B. das Ausführen von Tests oder das Testen des neuen Pakets mit einer App, die es verwendet.

Erstellen und Veröffentlichen des Pakets

Nachdem Sie nun die neue Eigenschaft zur Score-Klasse hinzugefügt und sichergestellt haben, dass das Projekt erfolgreich erstellt wurde, können Sie die Version des Pakets aktualisieren. Sie können dann Ihre Änderung auf GitHub veröffentlichen, damit Azure Pipelines das aktualisierte Paket erstellen und veröffentlichen kann.

  1. Öffnen Sie azure-pipelines.yml, ändern Sie minorVersion von 0 in 1, und speichern Sie die Datei.

    minorVersion: '1'
    

    Erhöhen Sie nun die Version von 1.0.0 auf 1.1.0, um die Änderung deutlich zu machen. In der Praxis würden Sie dem Versionsverwaltungsschema für die Art des Pakets folgen, mit dem Sie arbeiten.

    Gemäß der semantischen Versionsverwaltung sagt z. B. die Erhöhung der Nebenversion auf 1 (1.1.0) anderen Personen, dass das Paket abwärtskompatibel mit Apps ist, die Version 1.0.0 dieses Pakets verwenden. Benutzer, die das Paket verwenden, müssen möglicherweise ihre App modifizieren, um die neuen Features verwenden zu können.

    Beliebte Open-Source-Projekte bieten eine Dokumentation in Form eines Änderungsprotokolls, das die Änderungen in jeder Version und die Vorgehensweise bei der Migration von einer Hauptversion zur nächsten erläutert.

  2. Stagen, committen und pushen Sie Ihre Änderungen:

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. Wechseln Sie in Microsoft Azure Pipelines zum Projekt Tailspin.SpaceGame.Web.Models, und beobachten Sie die Ausführung des Builds.

  4. Öffnen Sie die Registerkarte Artifacts (Artefakte), und beachten Sie die neue Version. Kein Grund zur Sorge: Ihre alte Version ist für alle Projekte, die noch darauf verweisen, weiterhin vorhanden.

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

  5. Notieren Sie sich wie zuvor die neue Version für die nächste Lerneinheit.

Verweisen auf die neue Version des Modellpakets

Ändern Sie nun das Projekt Tailspin.SpaceGame.Web, um die neue Version des Pakets Tailspin.SpaceGame.Web.Models zu verwenden.

Hier arbeiten Sie mit der Kopie von Visual Studio Code für das Space Game-Web-App-Projekt Tailspin.SpaceGame.Web.

  1. Öffnen Sie in Visual Studio Code Tailspin.SpaceGame.Web.csproj, und ändern Sie PackageReference in die Versionsnummer des Pakets Tailspin.SpaceGame.Web.Models, das Sie in Azure Artifacts erstellt haben. Speichern Sie dann die Datei.

    Hier sehen Sie ein Beispiel:

    <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.1.0-CI-20210528-202436" />
    

    Wenn Sie in Visual Studio Code aufgefordert werden, Pakete wiederherzustellen, können Sie diese Meldung getrost ignorieren. Aus Gründen der Übersichtlichkeit werden wir die Web-App nicht lokal erstellen.

  2. Führen Sie vom Terminal aus das Stagen, Committen und Pushen der Änderungen durch.

    git add .
    git commit -m "Bump Models package to 1.1.0"
    git push origin models-package
    
  3. Wechseln Sie in Azure Pipelines zum Projekt mslearn-tailspin-spacegame-web, und beobachten Sie die Ausführung des Builds.

    Sie sehen in der Buildausgabe, dass die neueste Abhängigkeit abgerufen, die App erstellt und das Artefakt für die Web-App veröffentlicht wird.