Ejercicio: insertar un cambio en el paquete
En este punto, tiene dos canalizaciones. Una que publica el paquete Modelos en Azure Artifacts y otra para la aplicación web Space Game. La configuración de compilación para la aplicación web hace referencia al paquete Modelos para que pueda acceder a las clases de modelo.
Aquí pondrá en práctica la actualización del paquete Modelos y consumirá ese cambio desde la aplicación web.
Para ello, primero debe agregar una propiedad a una de las clases de modelo y, luego, aumentar la versión del paquete. Después, debe enviar el cambio a GitHub para que la canalización pueda compilar el paquete y publicarlo en Azure Artifacts.
Luego, actualizará la aplicación web para que haga referencia al número de versión más reciente del paquete Modelos, con el fin de que pueda usar la propiedad agregada.
Crear una rama
Comencemos por crear una rama que contenga nuestro trabajo. Cree una rama denominada add-game-style
, que se basa en la rama main
.
En este punto, tiene dos copias de la instancia 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. Aquí va a trabajar desde la copia del proyecto Tailspin.SpaceGame.Web.Models.
Desde Visual Studio Code, abra el terminal integrado.
En el terminal, ejecute el comando
git checkout
siguiente para crear una rama denominadaadd-game-style
.git checkout -B add-game-style
Agregar una propiedad al paquete Modelos
Agregue una propiedad denominada Score
a una de las clases de modelo, que proporciona el estilo (o la dificultad) del juego al que está asociada la puntuación.
Aquí, va a trabajar desde la copia de Visual Studio Code del proyecto Tailspin.SpaceGame.Web.Models.
En Visual Studio Code, abra Tailspin.SpaceGame.Web.Models/Models/Score.cs. Agregue la propiedad resaltada siguiente a la lista de propiedades ya existentes.
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:
Se está realizando un cambio en un archivo del proyecto para mostrar dónde aumenta el número de versión. Pero no actualizamos la aplicación web para que use la nueva propiedad.
Guarde el archivo.
Para comprobar el trabajo, compile el proyecto:
dotnet build --configuration Release
En la práctica, podría realizar pasos de comprobación adicionales, como ejecutar pruebas o probar el paquete nuevo con una aplicación que lo utilice.
Compilar y publicar el paquete
Ahora que se ha agregado la propiedad nueva a la clase Score
y se ha comprobado que el proyecto se compila correctamente, puede actualizar la versión del paquete. Después, puede insertar el cambio a GitHub para que Azure Pipelines pueda compilar y publicar el paquete actualizado.
Abra azure pipelines.yml, cambie
minorVersion
de0
a1
y guarde el archivo.minorVersion: '1'
En este caso, se cambiará la versión de 1.0.0 a 1.1.0 para que el cambio sea evidente. En la práctica, debería seguir el esquema del control de versiones para el tipo de paquete con el que trabaja.
Por ejemplo, según el Versionamiento Semántico, aumentar la versión secundaria a 1 (1.1.0) indica a otros usuarios que el paquete es compatible con versiones anteriores con aplicaciones que usen la versión 1.0.0 de ese paquete. Los usuarios que usan el paquete podrían modificar su aplicación para usar nuevas características.
Los proyectos de código abierto populares proporcionan documentación en forma de registro de cambios que explica los cambios realizados en cada versión y cómo migrar desde una versión principal a la siguiente.
Almacene provisionalmente, confirme y envíe los cambios:
git add . git commit -m "Add GameStyle property" git push origin add-game-style
En Microsoft Azure Pipelines, vaya al proyecto Tailspin.SpaceGame.Web.Models y observe la ejecución de la compilación.
Abra la pestaña Artefactos y fíjese en la nueva versión. No se preocupe; la versión anterior todavía está presente para cualquier proyecto que haga referencia a ella.
Tal como ha hecho anteriormente, anote la versión nueva de la unidad siguiente.
Hacer referencia a la nueva versión del paquete Modelos
Ahora, cambie el proyecto Tailspin.SpaceGame.Web para que use la versión nueva del paquete Tailspin.SpaceGame.Web.Models.
Aquí trabajará desde la copia de Visual Studio Code del proyecto de aplicación web Space Game, Tailspin.SpaceGame.Web.
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 los paquetes, puede ignorar ese mensaje. Para mayor brevedad, no compilaremos localmente la aplicación web.
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
En Azure Pipelines, vaya al proyecto mslearn-tailspin-spacegame-web y observe la ejecución de la compilación.
En la salida de la compilación verá que obtiene la dependencia más reciente, compila la aplicación y publica el artefacto de la aplicación web.