Oefening: een wijziging naar uw pakket uploaden
Op dit moment hebt u twee pijplijnen. Een publiceert het pakket Modellen naar Azure Artifacts en een is voor de Space Game-web-app. De buildconfiguratie voor de web-app verwijst naar het modelpakket, zodat het toegang heeft tot de modelklassen.
Hier gaat u oefenen met het bijwerken van het Models-pakket en hoe u die wijziging in de webapplicatie kunt gebruiken.
Hiervoor voegt u eerst een eigenschap toe aan een van de modelklassen en verhoogt u vervolgens de pakketversie. Vervolgens verzendt u de wijziging naar GitHub, zodat de pijplijn het pakket kan bouwen en naar Azure Artifacts kan publiceren.
Vervolgens werkt u de web-app bij om te verwijzen naar het nieuwere versienummer van het modelpakket, zodat deze de toegevoegde eigenschap kan gebruiken.
Een branch maken
Laten we beginnen met het maken van een branch om ons werk op te slaan. Maak een vertakking met de naam add-game-style
, die is gebaseerd op de main
vertakking.
Op dit moment hebt u twee exemplaren van Visual Studio Code geopend, één voor het Tailspin.SpaceGame.Web.Models project en één voor het project Space Game web-app, Tailspin.SpaceGame.Web. Hier werkt u vanuit de kopie voor het Tailspin.SpaceGame.Web.Models project.
Open vanuit Visual Studio Code de geïntegreerde terminal.
Voer vanuit de terminal de volgende
git checkout
opdracht uit om een vertakking met de naamadd-game-style
te maken.git checkout -B add-game-style
Een eigenschap toevoegen aan het modelpakket
Voeg een eigenschap met de naam Score
toe aan een van de modelklassen, die de spelstijl (of moeilijkheidsgraad) biedt waaraan de score is gekoppeld.
Hier werkt u vanuit de kopie van Visual Studio Code voor het Tailspin.SpaceGame.Web.Models project.
Open vanuit Visual Studio Code Tailspin.SpaceGame.Web.Models/Models/Score.cs. Voeg de volgende gemarkeerde eigenschap toe aan de lijst met eigenschappen die al aanwezig zijn.
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; } } }
Notitie
Je maakt een wijziging in een bestand in het project om te laten zien waar je het versienummer verhoogt. De web-app wordt echter niet bijgewerkt om de nieuwe eigenschap te gebruiken.
Sla het bestand op.
Bouw het project om uw werk te verifiëren:
dotnet build --configuration Release
In de praktijk kunt u aanvullende verificatiestappen uitvoeren, zoals het uitvoeren van tests of het testen van het nieuwe pakket met een app die het gebruikt.
Het pakket bouwen en publiceren
Nu u de nieuwe eigenschap hebt toegevoegd aan de Score
-klasse en de projectversies hebt gecontroleerd, kunt u de versie van het pakket bijwerken. Vervolgens kunt u uw wijziging naar GitHub pushen, zodat Azure Pipelines het bijgewerkte pakket kan bouwen en publiceren.
Open azure-pipelines.yml, wijzig de
minorVersion
van0
in1
en sla het bestand op.minorVersion: '1'
Hier stoten we de versie van 1.0.0 naar 1.1.0 om de wijziging duidelijk te maken. In de praktijk volgt u het versiebeheerschema voor het soort pakket waarmee u werkt.
Bijvoorbeeld, volgens Semantic Versioning geeft het verhogen van de minder belangrijke versie naar 1 (1.1.0) aan dat het pakket compatibel is met apps die versie 1.0.0 van dat pakket gebruiken. Degenen die het pakket gebruiken, kunnen hun app vervolgens wijzigen om gebruik te maken van nieuwe functies.
Populaire opensource-projecten bieden documentatie in de vorm van een changelog waarin de wijzigingen in elke versie worden uitgelegd en hoe u kunt migreren van de ene primaire versie naar de volgende.
Uw wijzigingen faseren, doorvoeren en pushen:
git add . git commit -m "Add GameStyle property" git push origin add-game-style
Ga vanuit Microsoft Azure Pipelines naar het Tailspin.SpaceGame.Web.Models project en bekijk de builduitvoering.
Open het tabblad Artefacten en noteer de nieuwe versie. Maak je niet druk; uw oude versie is er nog steeds voor projecten die er nog steeds naar verwijzen.
Zoals u eerder hebt gedaan, schrijft u de nieuwe versie voor de volgende les op.
Verwijzen naar de nieuwe versie van het modelpakket
Wijzig nu het project Tailspin.SpaceGame.Web om de nieuwe versie van het Tailspin.SpaceGame.Web.Models-pakket te gebruiken.
Hier werkt u vanuit de kopie van Visual Studio Code voor het project Space Game web-app, Tailspin.SpaceGame.Web.
Open vanuit Visual Studio Code Tailspin.SpaceGame.Web.csprojen wijzig
PackageReference
in het versienummer van het Tailspin.SpaceGame.Web.Models pakket dat u in Azure Artifacts hebt gemaakt. Sla het bestand vervolgens op.Hier volgt een voorbeeld:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.1.0-CI-20210528-202436" />
Als Visual Studio Code u vraagt om pakketten te herstellen, kunt u dat bericht veilig negeren. Ter beknoptheid bouwen we de web-app niet lokaal.
Vanuit de terminal kunt u de wijzigingen faseren, doorvoeren en pushen.
git add . git commit -m "Bump Models package to 1.1.0" git push origin models-package
Ga vanuit Azure Pipelines naar het project mslearn-tailspin-spacegame-web en bekijk het buildproces.
U ziet in de build-uitvoer dat de meest recente afhankelijkheid wordt opgehaald, dat de app wordt gebouwd en dat het artefact voor de webapp wordt gepubliceerd.