Exercice - Référencer le package à partir de l’application
Dans cette unité, vous obtenez le nouveau code de Tailspin.SpaceGame.Web dont les classes de modèle ont été supprimées. Au lieu de référencer directement les modèles, le code va les référencer à partir du package que vous avez créé dans l’unité précédente.
Voici une liste des étapes :
- Obtenir le nouveau code à partir d’une branche du dépôt Tailspin.SpaceGame.Web d’origine
- Référencer le nouveau package Models, version 1.0.0
- Pour rechercher ce package dans votre flux Azure Artifacts, changez de pipeline de build.
- Observez le pipeline générer l’application.
Récupérer (fetch) la branche à partir de GitHub
Récupérez la branche models-package
à partir de GitHub pour l’extraire ou y basculer.
Cette branche contient le projet Space Game avec lequel vous avez travaillé dans les modules précédents, mais le répertoire Models a été supprimé.
Basculez vers votre copie de Visual Studio Code qui montre le projet Tailspin.SpaceGame.Web.
À partir du terminal, pour récupérer une branche nommée
models-package
à partir du dépôt Microsoft, exécutez les commandesgit
suivantes. Ensuite, basculez vers cette branche.git fetch upstream models-package git checkout -B models-package upstream/models-package
Le format de ces commandes vous permet d’obtenir le code de démarrage à partir du dépôt Microsoft sur GitHub, appelé
upstream
. Dans quelques instants, vous pousserez (push) cette branche vers votre dépôt GitHub appeléorigin
.En guise d’étape facultative, vérifiez que le répertoire Models n’existe plus dans l’Explorateur de fichiers. Au lieu de cela, vous devez avoir Controllers, Views et d’autres répertoires.
Référencer le package Models
Ouvrez le fichier Tailspin.SpaceGame.Web.csproj et ajoutez l’
ItemGroup
suivant :<ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup>
Veillez à placer l’
ItemGroup
à l’intérieur du nœudProject
. Votre fichier doit ressembler au suivant :<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <ProjectGuid>{A0C4E31E-AC75-4F39-9F59-0AA19D9B8F46}</ProjectGuid> </PropertyGroup> <ItemGroup> <PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0" /> </ItemGroup> <ItemGroup> <Folder Include="wwwroot\images\avatars\" /> </ItemGroup> </Project>
Modifiez la version « 1.0.0 » pour ajouter le préfixe de préversion qui a été généré pendant le processus de génération. Voici un exemple :
<PackageReference Include="Tailspin.SpaceGame.Web.Models" Version="1.0.0-CI-20200610-165738" />
Ceci référence le package Tailspin.SpaceGame.Web.Models que vous avez créé dans Azure Artifacts. Notez le numéro de version, 1.0.0, ainsi que le suffixe de préversion. Cela correspond à la version initiale que vous avez publiée sur Azure Artifacts dans l’unité précédente.
Enregistrez le fichier .
Notes
Quand vous enregistrez le fichier, Visual Studio Code peut vous inviter à restaurer les dépendances. Sélectionnez le bouton Restaurer pour restaurer les dépendances.
Modifier la configuration du pipeline
La branche models-package
fournit un fichier azure-pipelines.yml initial. Ici, vous allez modifier la configuration du pipeline pour tirer (pull) le package Tailspin.SpaceGame.Web.Models d’Azure Artifacts.
Dans Visual Studio Code, ouvrez azure-pipelines.yml.
Modifiez azure-pipelines.yml comme indiqué ici :
trigger: - '*' pool: vmImage: 'ubuntu-20.04' demands: - npm variables: buildConfiguration: 'Release' wwwrootDir: 'Tailspin.SpaceGame.Web/wwwroot' dotnetSdkVersion: '6.x' steps: - task: UseDotNet@2 displayName: 'Use .NET SDK $(dotnetSdkVersion)' inputs: version: '$(dotnetSdkVersion)' - task: NuGetToolInstaller@0 inputs: versionSpec: '5.9.1' - task: Npm@1 displayName: 'Run npm install' inputs: verbose: false - script: './node_modules/.bin/node-sass $(wwwrootDir) --output $(wwwrootDir)' displayName: 'Compile Sass assets' - task: gulp@1 displayName: 'Run gulp tasks' - script: 'echo "$(Build.DefinitionName), $(Build.BuildId), $(Build.BuildNumber)" > buildinfo.txt' displayName: 'Write build info' workingDirectory: $(wwwrootDir) - task: NuGetCommand@2 displayName: 'Restore project dependencies' inputs: command: 'restore' restoreSolution: '**/*.sln' feedsToUse: 'select' vstsFeed: '$(System.TeamProject)/Tailspin.SpaceGame.Web.Models' - task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj' - task: DotNetCoreCLI@2 displayName: 'Publish the project - $(buildConfiguration)' inputs: command: 'publish' projects: '**/*.csproj' publishWebProjects: false arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)' zipAfterPublish: true - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' condition: succeeded()
Le code surligné montre l’emplacement où le pipeline restaure les dépendances et recherche celles qui se trouvent éventuellement dans votre flux Azure Artifacts.
Indexez, validez et poussez (push) vos modifications vers GitHub.
git add . git commit -m "Add reference to Models package" git push origin models-package
Accédez à Azure Pipelines et observez l’exécution de la build. La build récupère votre package Models à partir d’Azure Artifacts et génère le projet avec succès.