Övning – Skicka en ändring till ditt paket

Slutförd

Nu har du två pipelines. En publicerar modellpaketet till Azure Artifacts och ett är för webbappen Space Game. Byggkonfigurationen för webbappen refererar till modellpaketet så att det kan komma åt modellklasserna.

Här ska du öva på att uppdatera modellpaketet och använda den ändringen från webbappen.

För att göra det börjar du med att tillföra en egenskap till en av modellklasserna och sedan höja paketversionen. Sedan skickar du ändringen till GitHub så att pipelinen kan skapa paketet och publicera det till Azure Artifacts.

Sedan uppdaterar du webbappen för att referera till det nyare versionsnumret för modellpaketet så att det kan använda den tillagda egenskapen.

Skapa en gren

Vi börjar med att skapa en gren som håller i vårt arbete. Skapa en gren med namnet add-game-style, som baseras på grenen main.

Nu har du två kopior av Visual Studio Code öppna, en för projektet Tailspin.SpaceGame.Web.Models och en för projektet Space Game webbapp, Tailspin.SpaceGame.Web. Här arbetar du utifrån kopian för projektet Tailspin.SpaceGame.Web.Models.

  1. Öppna den integrerade terminalen från Visual Studio Code.

  2. Kör följande git checkout kommando för att skapa en gren med namnet add-game-stylefrån terminalen.

    git checkout -B add-game-style
    

Lägga till en egenskap i modellpaketet

Lägg till en egenskap med namnet Scoretill en av modellklasserna, som tillhandahåller spelstilen (eller svårigheten) som poängen är associerad med.

Här arbetar du från kopian av Visual Studio Code för projektet Tailspin.SpaceGame.Web.Models.

  1. Öppna Tailspin.SpaceGame.Web.Models/Models/Score.csfrån Visual Studio Code. Lägg till följande markerade egenskap i listan över egenskaper som redan finns där.

    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; }
        }
    }
    

    Not

    Du gör en ändring i en fil i projektet för att visa var du ökar versionsnumret. Men vi uppdaterar inte webbappen så att den använder den nya egenskapen.

  2. Spara filen.

  3. Skapa projektet för att verifiera ditt arbete:

    dotnet build --configuration Release
    

    I praktiken kan du utföra ytterligare verifieringssteg, till exempel att köra tester eller testa det nya paketet med en app som använder det.

Skapa och publicera paketet

Nu när du har lagt till den nya egenskapen i klassen Score och verifierat att projektet byggs framgångsrikt kan du uppdatera paketets version. Du kan sedan skicka ändringen till GitHub så att Azure Pipelines kan skapa och publicera det uppdaterade paketet.

  1. Öppna azure-pipelines.yml, ändra minorVersion från 0 till 1och spara filen.

    minorVersion: '1'
    

    Här ökar vi versionen från 1.0.0 till 1.1.0 för att göra ändringen tydlig. I praktiken följer du versionsschemat för den typ av paket som du arbetar med.

    Till exempel, enligt semantisk versionshantering, visar höjning av delversionen till 1 (1.1.0) att paketet är bakåtkompatibelt med appar som använder version 1.0.0 av paketet. De som använder paketet kan sedan ändra sin app för att använda nya funktioner.

    Populära projekt med öppen källkod tillhandahåller dokumentation i form av en ändringslogg som förklarar de ändringar som görs i varje version och hur du migrerar från en huvudversion till en annan.

  2. Mellanlagra, checka in och skicka ändringarna:

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. Från Microsoft Azure Pipelines går du till projektet Tailspin.SpaceGame.Web.Models och tittar på byggkörningen.

  4. Öppna fliken Artifacts och notera den nya versionen. Var inte orolig; din gamla version finns fortfarande för alla projekt som fortfarande refererar till den.

    En skärmbild av paketet i Azure Artifacts som visar version 1.1 av paketet.

  5. Som du gjorde tidigare kan du skriva ned den nya versionen för nästa enhet.

Referera till den nya versionen av modellpaketet

Ändra nu projektet Tailspin.SpaceGame.Web så att den nya versionen av Tailspin.SpaceGame.Web.Models-paketet används.

Här arbetar du från kopian av Visual Studio Code för webbappsprojektet Space Game, Tailspin.SpaceGame.Web.

  1. Från Visual Studio Code öppnar du Tailspin.SpaceGame.Web.csprojoch ändrar PackageReference till versionsnumret för Tailspin.SpaceGame.Web.Models paket som du skapade i Azure Artifacts. Spara sedan filen.

    Här är ett exempel:

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

    Om Visual Studio Code ber dig att återställa paket kan du ignorera meddelandet på ett säkert sätt. I korthet skapar vi inte webbappen lokalt.

  2. Från terminalen mellanlagra, checka in och push-överföra ändringarna.

    git add .
    git commit -m "Bump Models package to 1.1.0"
    git push origin models-package
    
  3. Gå till projektet mslearn-tailspin-spacegame-web från Azure Pipelines och övervaka byggprocessen.

    Du ser från byggutdata att den hämtar det senaste beroendet, skapar appen och publicerar artefakten för webbappen.