Exercice - Pousser (push) une modification vers votre package

Effectué

À ce stade, vous avez deux pipelines. L’un publie le package Models sur Azure Artifacts. L’autre est pour l’application web Space Game . La configuration de build de l’application web fait référence au package Models afin qu’elle puisse accéder aux classes de modèle.

Ici, vous pratiquez la mise à jour du package Modèles et l’utilisation de cette modification à partir de l’application web.

Pour ce faire, commencez par ajouter une propriété à l’une des classes de modèle, puis modifiez la version du package. Ensuite, envoyez la modification à GitHub afin que le pipeline puisse générer le package et le publier sur Azure Artifacts.

Ensuite, mettez à jour l’application web pour référencer le numéro de version plus récent du package Models afin qu’elle puisse utiliser la propriété ajoutée.

Créer une branche

Commencez par créer une branche qui contient votre travail. Créez une branche nommée add-game-style, qui est basée sur la main branche.

À ce stade, vous disposez de deux copies de Visual Studio Code ouvertes, une pour le projet Tailspin.SpaceGame.Web.Models et une pour le projet d’application web Space Game , Tailspin.SpaceGame.Web. Travaillez à partir de la copie du projet Tailspin.SpaceGame.Web.Models.

  1. Dans Visual Studio Code, ouvrez le terminal intégré.

  2. Pour créer une branche nommée add-game-style, exécutez la commande suivante git checkout dans le terminal.

    git checkout -B add-game-style
    

Ajouter une propriété au package Models

Ajoutez une propriété nommée Score à l’une des classes de modèle, qui fournit le style de jeu ou la difficulté, avec laquelle le score est associé.

Travaillez à partir de la copie de Visual Studio Code pour le projet Tailspin.SpaceGame.Web.Models .

  1. À partir de Visual Studio Code, ouvrez Tailspin.SpaceGame.Web.Models/Models/Score.cs. Ajoutez la propriété mise en surbrillance suivante à la liste des propriétés déjà présentes.

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

    Remarque

    Vous apportez une modification à un fichier dans le projet pour montrer où vous augmentez le numéro de version. Toutefois, ne mettez pas à jour l’application web pour utiliser la nouvelle propriété.

  2. Enregistrez le fichier.

  3. Pour vérifier votre travail, générez le projet :

    dotnet build --configuration Release
    

    Dans la pratique, vous pouvez effectuer des étapes de vérification supplémentaires, telles que l’exécution de tests ou le test du nouveau package avec une application qui l’utilise.

Générer et publier le package

Maintenant que vous avez ajouté la nouvelle propriété à la Score classe et vérifié que le projet est généré avec succès, vous pouvez mettre à jour la version du package. Vous pouvez ensuite envoyer (push) votre modification à GitHub afin qu’Azure Pipelines puisse générer et publier le package mis à jour.

  1. Ouvrez azure-pipelines.yml, remplacez minorVersion par 0, et enregistrez le fichier.

    minorVersion: '1'
    

    Ici, vous augmentez la version de 1.0.0 à 1.1.0 pour clarifier la modification. Dans la pratique, vous devez suivre le schéma de contrôle de version pour le type de package avec lequel vous travaillez.

    Par exemple, selon le contrôle de version sémantique, le passage de la version mineure à 1 (1.1.0) indique à d’autres personnes que le package est rétrocompatible avec les applications qui utilisent la version 1.0.0 de ce package. Ceux qui utilisent le package peuvent ensuite modifier leur application pour utiliser de nouvelles fonctionnalités.

    Les projets open source populaires fournissent une documentation sous la forme d’un journal des modifications qui explique les modifications apportées dans chaque version et comment migrer d’une version principale à l’autre.

  2. Indexez, commitez et envoyez (push) vos modifications :

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. À partir de Microsoft Azure Pipelines, accédez au projet Tailspin.SpaceGame.Web.Models , puis regardez l’exécution de la build.

  4. Ouvrez l’onglet Artefacts et notez la nouvelle version. Ne vous inquiétez pas; votre ancienne version est toujours là pour tous les projets qui le référencent toujours.

    Capture d’écran du package dans Azure Artifacts, montrant la version 1.1 du package.

  5. Comme vous l’avez fait précédemment, notez la nouvelle version pour l’unité suivante.

Référencer la nouvelle version du package Modèles

À présent, modifiez le projet Tailspin.SpaceGame.Web pour utiliser la nouvelle version du package Tailspin.SpaceGame.Web.Models .

Ici, travaillez à partir de la copie de Visual Studio Code pour le projet d’application web Space Game , Tailspin.SpaceGame.Web.

  1. À partir de Visual Studio Code, ouvrez Tailspin.SpaceGame.Web.csproj et passez PackageReference au numéro de version du package Tailspin.SpaceGame.Web.Models que vous avez créé dans Azure Artifacts. Puis enregistrez le fichier.

    Voici un exemple :

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

    Si Visual Studio Code vous demande de restaurer des packages, vous pouvez ignorer ce message en toute sécurité. Par souci de concision, nous ne créons pas l’application web localement.

  2. À partir du terminal, indexez, validez et poussez (push) les modifications.

    git add .
    git commit -m "Bump Models package to 1.1.0"
    git push origin models-package
    
  3. À partir d’Azure Pipelines, accédez au projet mslearn-tailspin-spacegame-web et regardez l’exécution de la build.

    À partir du résultat de la compilation, vous voyez qu'elle récupère la dernière version des dépendances, compile l'application et publie l'artefact pour l'application web.