Cvičení – odeslání změny do balíčku
V tuto chvíli máte dvě potrubí. Jeden publikuje balíček Models do Azure Artifacts a druhý je 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 na GitHub, aby vývojový řetězec mohl sestavit balíček a publikovat ho na Azure Artifacts.
Pak webovou aplikaci aktualizujete, aby odkazovala na novější číslo verze balíčku Models a bylo možné použít přidanou vlastnost.
Vytvoření větve
Začněme vytvořením větve, ve které uchováme naši práci. 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, konkrétně Tailspin.SpaceGame.Web. Tady budete pracovat s kopií projektu Tailspin.SpaceGame.Web.Models.
V editoru Visual Studio Code otevřete integrovaný terminál.
V terminálu vytvořte větev s názvem
add-game-style
spuštěním následujícího příkazugit checkout
.git checkout -B add-game-style
Přidání vlastnosti do balíčku Models
Přidejte vlastnost s názvem Score
do jedné z tříd modelu, která poskytuje styl hry (nebo obtížnost), ke kterému je skóre přidruženo.
Tady budete pracovat z kopie Visual Studio Code pro projektu Tailspin.SpaceGame.Web.Models.
V editoru Visual Studio Code otevřete 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 demonstrovali, kde zvýšit číslo verze. Webovou aplikaci ale neaktualizujeme tak, aby používala novou vlastnost.
Uložte soubor.
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 třídy Score
a úspěšně ověřili 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.
Otevřete azure-pipelines.yml, změňte
minorVersion
z0
na1
a soubor uložte.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 podle Sémantického verzování zvýšení podverze na 1 (1.1.0) říká ostatním, ž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ší.
Připravte, potvrďte a odešlete změny:
git add . git commit -m "Add GameStyle property" git push origin add-game-style
V Microsoft Azure Pipelines přejděte do projektu Tailspin.SpaceGame.Web.Models a sledujte spuštění sestavení.
Otevřete kartu Artifacts a poznamenejte si novou verzi. Neboj; vaše stará verze je stále k dispozici pro všechny projekty, které na ni stále odkazují.
Stejně jako předtím si poznamenejte novou verzi pro další jednotku.
Odkaz 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 s kopií editoru Visual Studio Code pro projekt webové aplikace Space GameTailspin.SpaceGame.Web.
V editoru Visual Studio Code otevřete Tailspin.SpaceGame.Web.csproja změňte
PackageReference
na číslo verze Tailspin.SpaceGame.Web.Models balíčku, který jste vytvořili v Azure Artifacts. Potom 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 požádá o obnovení balíčků, můžete tuto zprávu bezpečně ignorovat. Kvůli stručnosti nebudeme webovou aplikaci vytvářet místně.
Z terminálu připravte, potvrďte a odešlete změny.
git add . git commit -m "Bump Models package to 1.1.0" git push origin models-package
V Azure Pipelines přejděte na projekt mslearn-tailspin-spacegame-web a sledujte průběh sestavení.
Z výstupu sestavení vidíte, že získává nejnovější závislosti, sestavuje aplikaci a publikuje výstup pro webovou aplikaci.