Exercício – Criar um pipeline para o seu pacote
Aqui, você terá novo código da equipe para o projeto Tailspin.SpaceGame.Web.Models que agora está separado do projeto Tailspin.SpaceGame.Web. Você criará um projeto do Azure Pipelines para o projeto de Modelos e verá o artefato no Azure Artifacts com um número de versão de 1.0.0 em seu feed.
Quais alterações foram feitas ao projeto?
Lembre-se de que o site Space Game é um aplicativo ASP.NET Core. Ele usa o padrão MVC (ou Model-View-Controller) para separar os dados de como esses dados são exibidos na interface do usuário. Paulo e Clara querem mover as classes de modelo para uma biblioteca separada para que vários projetos possam usá-las.
Para fazer isso, eles criam um projeto C#, chamado Tailspin.SpaceGame.Web.Models, que contém somente as classes de modelo. Ao mesmo tempo, removem as classes de modelo do projeto existente, Tailspin.SpaceGame.Web. Eles substituem as classes de modelo em seu projeto existente por uma referência ao projeto Tailspin.SpaceGame.Web.Models.
Para criar esses projetos, Paulo e Clara usam dois pipelines, um para cada projeto. Você já tem o primeiro projeto e sua configuração do Azure Pipelines associada. Aqui, você criará o fork do segundo projeto no GitHub e criará uma configuração do Azure Pipelines para compilá-lo. Você vai publicar o pacote resultante no Azure Artifacts.
Preparar o Visual Studio Code
Anteriormente, você configurava Visual Studio Code para trabalhar com o projeto Tailspin.SpaceGame.Web. Aqui, você abrirá uma segunda instância do Visual Studio Code para trabalhar com o projeto Tailspin.SpaceGame.Web.Models.
Abra uma segunda instância do Visual Studio Code.
No Visual Studio Code, abra o terminal integrado.
Navegue até o diretório pai em que o projeto mslearn-tailspin-spacegame-web está localizado. Veja um exemplo que se move para o diretório base:
cd ~
Obter o código-fonte
Obtenha o código-fonte do projeto Tailspin.SpaceGame.Web.Models do GitHub e configure o Visual Studio Code para trabalhar com os arquivos.
Criar fork
A primeira etapa é o fork do repositório mslearn-tailspin-spacegame-web-models para que você possa trabalhar com os arquivos de origem e modificá-los. Lembre-se de que Clara colocou o diretório Modelos em um novo projeto e o removeu do projeto Web.
Para bifurcar o projeto mslearn-tailspin-spacegame-web-models em sua conta do GitHub:
- Em um navegador da Web, acesse o GitHub e entre nele.
- Vá até o projeto mslearn-tailspin-spacegame-web-models.
- Selecione Fork.
- Para criar fork do repositório em sua conta, siga as instruções.
Clonar o fork localmente
Para clonar os projetos mslearn-tailspin-spacegame-web-models para seu computador:
No GitHub, vá para seu fork do projeto mslearn-tailspin-spacegame-web-models.
Selecione Código. Em seguida, na guia HTTPS, clique no botão ao lado da URL mostrada a fim de copiá-la para a área de transferência.
No Visual Studio Code, vá até a janela do terminal e execute este comando
git clone
. Substitua a URL mostrada com o conteúdo da área de transferência.git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
Mova para o diretório mslearn-tailspin-spacegame-web-models. Esse é o diretório raiz do repositório.
cd mslearn-tailspin-spacegame-web-models
Abra o projeto e examine a configuração
No Visual Studio Code, sua janela de terminal aponta para o diretório raiz do projeto mslearn-tailspin-spacegame-web-models. Abra o projeto no Explorador de Arquivos para ver a estrutura e trabalhar com os arquivos.
A maneira mais fácil de abrir o projeto é reabrir o Visual Studio Code no diretório atual. Para fazer isso, execute o seguinte comando no terminal integrado:
code -r .
Você verá a árvore de diretórios e arquivos no Explorador de Arquivos.
Reabra o terminal integrado. O terminal coloca você na raiz do seu projeto Web.
Abra o arquivo azure-pipelines.yml.
Você vê as etapas em que o pacote é compilado, a versão é definida e o pacote é adicionado ao Azure Artifacts.
Essa tarefa
DotNetCoreCLI@2
compila o projeto:- task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj'
Esta tarefa
DotNetCoreCLI@2
empacota o projeto com uma versão 1.0.0:- task: DotNetCoreCLI@2 displayName: 'Pack the project - $(buildConfiguration)' inputs: command: 'pack' projects: '**/*.csproj' arguments: '--no-build --configuration $(buildConfiguration)' versioningScheme: byPrereleaseNumber majorVersion: '1' minorVersion: '0' patchVersion: '0'
Ao desenvolver seu pacote, é comum usar o esquema de controle de versão
byPrereleaseNumber
. Isso acrescenta um sufixo de pré-lançamento exclusivo, como "-CI-20190621-042647" ao final do número de versão. Seguindo este exemplo, o número de versão completo seria "1.0.0-CI-20190621-042647".Esta tarefa
NuGetCommand@2
envia o pacote por push para seu feed do Azure Artifacts Tailspin.SpaceGame.Web.Models:- task: NuGetCommand@2 displayName: 'Publish NuGet package' inputs: command: push feedPublish: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models' allowPackageConflicts: true condition: succeeded()
feedPublish
especifica o nome do feed a ser publicado. O formato do nome é<projectName>/<feedName>
, em que:$(System.TeamProject)
é uma variável predefinida que se refere ao nome do projeto; por exemplo, "Space Game – Web – Dependências".Tailspin.SpaceGame.Web.Models
é o nome do feed fornecido no exercício anterior.
Definir permissões
Para configurar e executar o pipeline, você precisa fornecer as permissões corretas ao serviço de Build.
- Acesse seu projeto no Azure DevOps.
- Selecione Artefatos no menu à esquerda.
- Selecione o ícone Configurações na parte superior direita da tela e selecione a guia Permissões.
- Selecione o botão Adicionar usuários/grupos.
- No campo Usuários/Grupos, insira Space Game – Web – Serviço de Build de Dependências, selecione a função Colaborador e escolha Salvar.
Criar o pipeline no Azure Pipelines
Você aprendeu a configurar o Azure Pipelines em um módulo anterior. Se você precisar de um lembrete, vá para Criar um pipeline de build com o Azure Pipelines.
Aqui você vai configurar um segundo pipeline para criar e fazer upload do pacote para o Azure Artifacts.
No Azure DevOps, navegue até o projeto Space Game – Web – Dependencies.
No menu à esquerda, selecione Pipelines.
Selecione Novo Pipeline.
Na guia Conectar, selecione GitHub.
Na guia Select, selecione mslearn-tailspin-spacegame-web-models.
Se solicitado, insira suas credenciais do GitHub. Na página exibida, role para baixo e selecione Approve and install.
Na guia Examinar, você verá o novo arquivo azure-pipelines.yml do pipeline.
Selecione Executar.
Inspecione a execução do pipeline.
Navegue até a guia Artifacts.
No menu suspenso na parte superior, selecione Tailspin.SpaceGame.Web.Models.
Você verá o pacote resultante, Tailspin.SpaceGame.Web.Models, no Azure Artifacts.
Selecione o pacote para ir para a página de detalhes. Copie o número de versão para um local em que você pode acessá-lo facilmente mais tarde.
Você usará esse número de versão na próxima unidade.