Ejercicio: Inserción de un cambio en el paquete

Completado

En este momento, tiene dos canalizaciones. Uno publica el paquete Models en Azure Artifacts. La otra es para la aplicación web Space Game . La configuración de compilación de la aplicación web hace referencia al paquete Models para que pueda acceder a las clases de modelo.

Aquí pone en práctica la actualización del paquete Modelos y consume ese cambio desde la aplicación web.

Para ello, empiece agregando una propiedad a una de las clases de modelo y, a continuación, aumente la versión del paquete. A continuación, envíe el cambio a GitHub para que la canalización pueda compilar el paquete y publicarlo en Azure Artifacts.

A continuación, actualice la aplicación web para hacer referencia al número de versión más reciente del paquete Models para que pueda usar la propiedad agregada.

Creación de una rama

Empiece por crear una rama que contenga su trabajo. Cree una rama denominada add-game-style, que se basa en la main rama.

En este momento, tiene dos copias de Visual Studio Code abiertas, una para el proyecto Tailspin.SpaceGame.Web.Models y otra para el proyecto de aplicación web Space Game , Tailspin.SpaceGame.Web. Trabaje desde la copia del proyecto Tailspin.SpaceGame.Web.Models.

  1. Desde Visual Studio Code, abra el terminal integrado.

  2. Para crear una rama denominada add-game-style, ejecute el siguiente git checkout comando en el terminal.

    git checkout -B add-game-style
    

Agregar una propiedad al paquete Models

Agregue una propiedad denominada Score a una de las clases de modelo, que proporciona el estilo de juego, o dificultad, con la que está asociada la puntuación.

Trabaje desde la copia de Visual Studio Code del proyecto Tailspin.SpaceGame.Web.Models.

  1. En Visual Studio Code, abra Tailspin.SpaceGame.Web.Models/Models/Score.cs. Agregue la siguiente propiedad resaltada a la lista de propiedades que ya hay allí.

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

    Nota:

    Va a realizar un cambio en un archivo del proyecto para demostrar dónde se aumenta el número de versión. Sin embargo, no actualice la aplicación web para usar la nueva propiedad.

  2. Guarde el archivo.

  3. Para comprobar el trabajo, compile el proyecto:

    dotnet build --configuration Release
    

    En la práctica, puede realizar más pasos de comprobación, como ejecutar pruebas o probar el nuevo paquete con una aplicación que la use.

Compilación y publicación del paquete

Ahora que agregó la nueva propiedad a la Score clase y comprobó que el proyecto se compila correctamente, puede actualizar la versión del paquete. Después, puede insertar el cambio en GitHub para que Azure Pipelines pueda compilar y publicar el paquete actualizado.

  1. Abra azure-pipelines.yml, cambie de minorVersion0 a 1y guarde el archivo.

    minorVersion: '1'
    

    Aquí, se aumenta la versión de 1.0.0 a 1.1.0 para que el cambio sea claro. En la práctica, seguirás el esquema de versiones para el tipo de paquete con el que trabajas.

    Por ejemplo, según el versionado semántico, incrementar la versión menor a 1 (1.1.0) indica a otros que el paquete es compatible hacia atrás con las aplicaciones que usan la versión 1.0.0 de ese paquete. A continuación, los que usan el paquete podrían modificar su aplicación para hacer uso de nuevas características.

    Los proyectos populares de código abierto proporcionan documentación en forma de un registro de cambios que explica los cambios realizados en cada versión y cómo migrar de una versión principal a la siguiente.

  2. Almacene provisionalmente, confirme y envíe los cambios:

    git add .
    git commit -m "Add GameStyle property"
    git push origin add-game-style
    
  3. En Microsoft Azure Pipelines, vaya al proyecto Tailspin.SpaceGame.Web.Models y vea la ejecución de la compilación.

  4. Abra la pestaña Artefactos y anote la nueva versión. No te preocupes; la versión anterior sigue estando ahí para los proyectos que todavía lo hacen referencia.

    Captura de pantalla del paquete en Azure Artifacts, que muestra la versión 1.1 del paquete.

  5. Como hiciste anteriormente, anota la nueva versión para la próxima unidad.

Hacer referencia a la nueva versión del paquete Models

Ahora, cambie el proyecto Tailspin.SpaceGame.Web para usar la nueva versión del paquete Tailspin.SpaceGame.Web.Models .

Aquí, trabaje desde la copia de Visual Studio Code para el proyecto de aplicación web de Space Game, Tailspin.SpaceGame.Web.

  1. En Visual Studio Code, abra Tailspin.SpaceGame.Web.csproj y cambie PackageReference al número de versión del paquete Tailspin.SpaceGame.Web.Models que creó en Azure Artifacts. A continuación, guarde el archivo.

    Este es un ejemplo:

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

    Si Visual Studio Code le pide que restaure paquetes, puede omitir ese mensaje de forma segura. Por motivos de brevedad, no compilamos la aplicación web localmente.

  2. Desde el terminal, almacene de forma provisional los cambios, confírmelos y envíelos.

    git add .
    git commit -m "Bump Models package to 1.1.0"
    git push origin models-package
    
  3. En Azure Pipelines, vaya al proyecto mslearn-tailspin-spacegame-web y vea la ejecución de la compilación.

    Verá en el resultado de la compilación que obtiene la dependencia más reciente, compila la aplicación y publica el elemento para la aplicación web.