Cvičení – nasdílení změny do balíčku

Dokončeno

V tuto chvíli máte dva kanály. Jeden publikuje balíček Models do Azure Artifacts a druhý je určený pro webovou aplikaci Space Game . Konfigurace sestavení pro webovou aplikaci odkazuje na balíček Models, aby mohl přistupovat k třídám modelu.

Tady si procvičíte aktualizaci balíčku Models a využití této změny z webové aplikace.

Začnete přidáním vlastnosti do jedné z tříd modelu a následným zvýšením verze balíčku. Pak odešlete změnu do GitHubu, aby kanál mohl sestavit balíček a publikovat ho do Azure Artifacts.

Pak webovou aplikaci aktualizujete tak, aby odkazovat na novější číslo verze balíčku Models, aby bylo možné použít přidanou vlastnost.

Vytvoření větve

Začněme vytvořením větve pro uložení naší práce. Vytvořte větev s názvem add-game-style, která je založená na main větvi.

V tuto chvíli máte otevřené dvě kopie editoru Visual Studio Code, jednu pro projekt Tailspin.SpaceGame.Web.Models a jednu pro projekt webové aplikace Space Game , Tailspin.SpaceGame.Web. Tady budete pracovat z kopie projektu Tailspin.SpaceGame.Web.Models .

  1. V editoru Visual Studio Code otevřete integrovaný terminál.

  2. Z terminálu vytvořte větev s názvem add-game-style, spusťte následující git checkout příkaz.

    git checkout -B add-game-style
    

Přidání vlastnosti do balíčku Models

Přidejte vlastnost pojmenovanou Scoredo jedné z tříd modelu, která poskytuje styl hry (nebo potíže), ke kterým je skóre přidruženo.

Tady budete pracovat z kopie editoru Visual Studio Code pro projekt Tailspin.SpaceGame.Web.Models .

  1. V editoru Visual Studio Code otevřete soubor Tailspin.SpaceGame.Web.Models/Models/Score.cs. Do seznamu již uvedených vlastností přidejte následující zvýrazněnou vlastnost.

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

    Poznámka:

    Provádíte změnu souboru v projektu, abyste si ukázali, kde jste přešli na číslo verze. Webovou aplikaci ale neaktualizujeme tak, aby používala novou vlastnost.

  2. Soubor uložte.

  3. Pokud chcete ověřit svou práci, sestavte projekt:

    dotnet build --configuration Release
    

    V praxi můžete provést další kroky ověření, například spuštění testů nebo testování nového balíčku pomocí aplikace, která ho používá.

Sestavení a publikování balíčku

Teď, když jste přidali novou vlastnost do Score třídy a ověřili úspěšné sestavení projektu, můžete aktualizovat verzi balíčku. Změny pak můžete odeslat na GitHub, aby služba Azure Pipelines mohl sestavit a publikovat aktualizovaný balíček.

  1. Otevřete azure-pipelines.yml, změňte minorVersion z 0 na 1a uložte soubor.

    minorVersion: '1'
    

    V této části jsme přeškrtli verzi z verze 1.0.0 na 1.1.0, aby byla změna jasná. V praxi byste postupli podle schématu správy verzí pro typ balíčku, se kterým pracujete.

    Například v závislosti na sémantické sémantické správě verzí se při zvýšení podverze na verzi 1 (1.1.0) ostatním říká, že balíček je zpětně kompatibilní s aplikacemi, které používají verzi 1.0.0 daného balíčku. Uživatelé, kteří balíček používají, pak můžou aplikaci upravit tak, aby využívali nové funkce.

    Oblíbené opensourcové projekty poskytují dokumentaci ve formě protokolu změn, který vysvětluje změny provedené v jednotlivých verzích a způsob migrace z jedné hlavní verze na další.

  2. Připravte, potvrďte a nasdílejte změny:

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. V Microsoft Azure Pipelines přejděte do projektu Tailspin.SpaceGame.Web.Models a sledujte spuštění sestavení.

  4. Otevřete kartu Artifacts (Artefakty) a zkontrolujte novou verzi. Neboj; vaše stará verze je stále k dispozici pro všechny projekty, které na ni stále odkazují.

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

  5. Stejně jako předtím si poznamenejte novou verzi pro další lekci.

Vytvoření odkazu na novou verzi balíčku Models

Nyní změňte projekt Tailspin.SpaceGame.Web tak, aby používal novou verzi balíčku Tailspin.SpaceGame.Web.Models .

Tady budete pracovat z kopie editoru Visual Studio Code pro projekt webové aplikace Space Game Tailspin.SpaceGame.Web.

  1. V editoru Visual Studio Code otevřete tailspin.SpaceGame.Web.csproj a přejděte PackageReference na číslo verze balíčku Tailspin.SpaceGame.Web.Models , který jste vytvořili v Azure Artifacts. Pak soubor uložte.

    Tady je příklad:

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

    Pokud vás Visual Studio Code vyzve k obnovení balíčků, můžete tuto zprávu klidně ignorovat. Kvůli stručnosti nebudeme webovou aplikaci vytvářet místně.

  2. Přes terminál připravte, potvrďte a nasdílejte změny.

    git add .
    git commit -m "Bump Models package to 1.1.0"
    git push origin models-package
    
  3. V Azure Pipelines přejděte do webového projektu mslearn-tailspin-spacegame-web a sledujte spuštění sestavení.

    Uvidíte z výstupu sestavení, že získá nejnovější závislost, sestaví aplikaci a publikuje artefakt pro webovou aplikaci.