Exercício – Enviar por push uma alteração ao seu pacote
Neste ponto, você tem dois pipelines. Um publica o pacote Models no Azure Artifacts e outro, no aplicativo Web Space Game. A configuração de build para o aplicativo Web faz referência ao pacote Models para que ele possa acessar as classes de modelo.
Aqui, você vai treinar como atualizar o pacote de Modelos e consumir essa alteração do aplicativo Web.
Para fazer isso, comece adicionando uma propriedade a uma das classes do modelo e aumente a versão do pacote. Em seguida, envie a alteração ao GitHub para que o pipeline crie o pacote e o publique no Azure Artifacts.
Atualize o aplicativo Web para que ele faça referência ao número de versão mais recente do pacote Modelos e possa usar a propriedade adicionada.
Criar um branch
Vamos começar criando um branch para conter nosso trabalho. Crie um branch chamado add-game-style
, que é baseado no branch main
.
Neste ponto, você tem duas cópias do software Visual Studio Code abertas uma para o projeto Tailspin.SpaceGame.Web.Models e outra para o projeto de aplicativo Web Space Game, Tailspin.SpaceGame.Web. Aqui, você vai trabalhar usando a cópia do projeto Tailspin.SpaceGame.Web.Models.
No Visual Studio Code, abra o terminal integrado.
No terminal, para criar um branch chamado
add-game-style
, execute o comandogit checkout
a seguir.git checkout -B add-game-style
Adicionar uma propriedade ao pacote de Modelos
Adicione uma propriedade chamada Score
a uma das classes de modelo, que fornece o estilo de jogo (ou a dificuldade) com o qual a pontuação está associada.
Aqui, você vai trabalhar usando a cópia do Visual Studio Code para o projeto Tailspin.SpaceGame.Web.Models.
No Visual Studio Code, abra Tailspin.SpaceGame.Web.Models/Models/Score.cs. Adicione a propriedade realçada a seguir à lista de propriedades que já está lá.
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; } } }
Observação
Você está fazendo uma alteração a um arquivo no projeto para demonstrar em que local você aumenta o número de versão. No entanto, não vamos atualizar o aplicativo Web para usar a nova propriedade.
Salve o arquivo.
Para verificar o trabalho, compile o projeto:
dotnet build --configuration Release
Na prática, você pode executar etapas de verificação adicional, como executar testes ou testar o novo pacote com um aplicativo que o usa.
Compilar e publicar o pacote
agora que você adicionou a propriedade à classe Score
e verificou se o projeto foi compilado com êxito, pode atualizar a versão do pacote. Você pode enviar por push sua alteração para o GitHub para que Azure Pipelines possa criar e publicar o pacote atualizado.
Abra azure-pipelines.yml, altere
minorVersion
de0
para1
e salve o arquivo.minorVersion: '1'
Aqui, é possível aumentar a versão 1.0.0 para 1.1.0 para deixar clara a alteração. Na prática, você seguiria para o esquema de controle de versão para o tipo de pacote com que está trabalhando.
Por exemplo, de acordo com o Controle de Versão Semântico, aumentar a versão principal para 1 (1.1.0) informa que o pacote não é compatível com aplicativos que usam a versão 1.0.0 do pacote. Aqueles que usam o pacote podem então modificar o aplicativo para usar os novos recursos.
Projetos de código aberto populares fornecem a documentação na forma de um log de mudanças que explica as alterações feitas a cada versão e como migrar de uma versão principal para a próxima.
Prepare, confirme e envie suas alterações por push:
git add . git commit -m "Add GameStyle property" git push origin add-game-style
No Microsoft Azure Pipelines, vá para o projeto Tailspin.SpaceGame.Web.Models e assista ao build ser executado.
Abra a guia Artifacts e observe a nova versão. não se preocupe, a versão antiga ainda está lá para quaisquer projetos que ainda façam referência a ela.
Como você fez anteriormente, anote a nova versão para a próxima unidade.
Faça referência à nova versão do pacote de Modelos
Aqui, altere o projeto Tailspin.SpaceGame.Web para usar a nova versão do pacote Tailspin.SpaceGame.Web.Models.
Aqui, você vai trabalhar usando a cópia do Visual Studio Code para o projeto de aplicativo Web Space Game, Tailspin.SpaceGame.Web.
No Visual Studio Code, abra Tailspin.SpaceGame.Web.csproj e altere
PackageReference
para o número de versão do pacote Tailspin.SpaceGame.Web.Models criado no Azure Artifacts. Em seguida, salve o arquivo.Veja um exemplo:
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.1.0-CI-20210528-202436" />
Se o Visual Studio Code solicitar que você restaure os pacotes, você poderá ignorar com segurança essa mensagem. Para fins de brevidade, não vamos compilar o aplicativo Web localmente.
No terminal, prepare, confirme e efetue push das alterações.
git add . git commit -m "Bump Models package to 1.1.0" git push origin models-package
No Azure Pipelines, acesse o projeto mslearn-tailspin-spacegame-web e assista ao build ser executado.
Você pode ver na saída do build que ele obtém a dependência mais recente, compila o aplicativo e publica o artefato para o aplicativo Web.