Exercice - Créer un pipeline pour votre package
Ici, vous obtenez le nouveau code de l’équipe pour le projet Tailspin.SpaceGame.Web.Models qui est désormais distinct du projet Tailspin.SpaceGame.Web . Vous créez un projet Azure Pipelines pour le projet Modèles et consultez l’artefact dans Azure Artifacts avec un numéro de version de 1.0.0 dans votre flux.
Quelles modifications ont été apportées au projet ?
Rappelez-vous que le site web Space Game est une application ASP.NET Core. Il utilise le modèle Model-View-Controller (MVC) pour séparer les données de la façon dont ces données sont affichées dans l’interface utilisateur. Andy et Mara veulent déplacer les classes de modèle vers une bibliothèque distincte afin que plusieurs projets puissent utiliser ces classes.
Pour ce faire, ils créent un projet C# appelé Tailspin.SpaceGame.Web.Models qui contient uniquement les classes de modèle. En même temps, ils suppriment les classes de modèle de leur projet existant, Tailspin.SpaceGame.Web. Ils remplacent les classes de modèle dans leur projet existant par une référence au projet Tailspin.SpaceGame.Web.Models .
Pour construire ces projets, Andy et Mara utilisent deux pipelines, un pour chaque projet. Vous disposez déjà du premier projet et de sa configuration Azure Pipelines associée. Ici, vous forkez le deuxième projet sur GitHub et créez une configuration Azure Pipelines pour le construire. Publiez le package obtenu sur Azure Artifacts.
Préparer Visual Studio Code
Auparavant, vous configurez Visual Studio Code pour qu’il fonctionne avec le projet Tailspin.SpaceGame.Web . Ici, vous ouvrez une deuxième instance de Visual Studio Code pour pouvoir utiliser le projet Tailspin.SpaceGame.Web.Models .
Ouvrez une deuxième instance de Visual Studio Code.
Dans Visual Studio Code, ouvrez le terminal intégré.
Accédez au répertoire parent à partir duquel se trouve votre projet mslearn-tailspin-spacegame-web . Voici un exemple qui se déplace vers votre répertoire personnel :
cd ~
Obtenir le code source
Obtenez le code source du projet Tailspin.SpaceGame.Web.Models à partir de GitHub et configurez Visual Studio Code pour pouvoir utiliser les fichiers.
Créer une duplication (fork)
La première étape consiste à fork le référentiel mslearn-tailspin-spacegame-web-models afin de pouvoir utiliser et modifier les fichiers sources. Rappelez-vous que Mara a placé le répertoire Models dans un nouveau projet et l’a supprimé du projet web.
Pour dupliquer le projet mslearn-tailspin-spacegame-web-models dans votre compte GitHub :
- À partir d’un navigateur web, accédez à GitHub et connectez-vous.
- Accédez au projet mslearn-tailspin-spacegame-web-models .
- Sélectionnez Fork.
- Pour dupliquer le dépôt dans votre compte, suivez les instructions.
Clonez votre fourche localement
Pour cloner les projets mslearn-tailspin-spacegame-web-models sur votre ordinateur :
Sur GitHub, accédez à votre clone du projet mslearn-tailspin-spacegame-web-models.
Sélectionnez Code. Ensuite, sous l’onglet HTTPS, sélectionnez le bouton en regard de l’URL pour copier l’URL dans votre presse-papiers.
À partir de Visual Studio Code, accédez à la fenêtre de terminal et exécutez cette
git clonecommande. Remplacez l’URL par le contenu de votre presse-papiers.git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.gitAccédez au répertoire mslearn-tailspin-spacegame-web-models . Cet emplacement est le répertoire racine de votre référentiel.
cd mslearn-tailspin-spacegame-web-models
Ouvrez le projet et examinez la configuration
Dans Visual Studio Code, votre fenêtre de terminal pointe vers le répertoire racine du projet mslearn-tailspin-spacegame-web-models . Ouvrez le projet à partir de l’Explorateur de fichiers pour pouvoir afficher sa structure et travailler avec des fichiers.
Le moyen le plus simple d’ouvrir le projet est de rouvrir Visual Studio Code dans le répertoire actuel. Pour ce faire, exécutez la commande suivante dans le terminal intégré :
code -r .Le répertoire et l’arborescence des fichiers s’affichent dans l’Explorateur de fichiers.
Rouvrez le terminal intégré. Le terminal vous place à la racine de votre projet web.
Ouvrez le fichier azure-pipelines.yml .
Vous voyez les étapes dans lesquelles le package est généré, la version est définie et le package est ajouté à Azure Artifacts.
Cette
DotNetCoreCLI@2tâche construit le projet :- task: DotNetCoreCLI@2 displayName: 'Build the project - $(buildConfiguration)' inputs: command: 'build' arguments: '--no-restore --configuration $(buildConfiguration)' projects: '**/*.csproj'Cette
DotNetCoreCLI@2tâche empaquette le projet avec une version 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'Lors du développement de votre package, il est courant d’utiliser le
byPrereleaseNumberschéma de contrôle de version. Cette approche ajoute un suffixe de préversion unique tel que-CI-20190621-042647à la fin du numéro de version. À l’issue de cet exemple, le numéro de version complet serait1.0.0-CI-20190621-042647.Cette tâche
NuGetCommand@2envoie (push) le package vers votre flux 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()feedPublishspécifie le nom du flux à publier. Le format du nom est<projectName>/<feedName>, où :-
$(System.TeamProject)est une variable prédéfinie qui fait référence au nom de votre projet, par exemple « Space Game - web - Dépendances ». -
Tailspin.SpaceGame.Web.Modelsest le nom du flux que vous avez fourni dans l’exercice précédent.
-
Définir des autorisations
Avant de pouvoir configurer et exécuter votre pipeline, vous devez accorder au service build les autorisations appropriées.
- Accédez à votre projet dans Azure DevOps.
- Sélectionnez Artefacts dans le menu de gauche.
- Sélectionnez l’icône Paramètres en haut à droite de l’écran, puis sélectionnez l’onglet Autorisations .
- Sélectionnez le bouton Ajouter des utilisateurs/groupes .
- Dans le champ Utilisateurs/Groupes, entrez Space Game - web - Dépendances Build Service, sélectionnez le rôle Contributeur, puis sélectionnez Enregistrer.
Créer le pipeline dans Azure Pipelines
Voici comment configurer un deuxième pipeline pour générer le package et charger ce package dans Azure Artifacts.
À partir d’Azure DevOps, accédez au projet Space Game - web - Dépendances .
Dans le menu de gauche, sélectionnez Pipelines.
Sélectionnez Nouveau pipeline.
Sous l’onglet Se connecter , sélectionnez GitHub.
Sous l’onglet Sélectionner , sélectionnez mslearn-tailspin-spacegame-web-models.
Si vous y êtes invité, entrez vos informations d’identification GitHub. Dans la page qui s’affiche, faites défiler vers le bas, puis sélectionnez Approuver et installer.
Sous l’onglet Révision, vous voyez le fichier azure-pipelines.yml du nouveau pipeline.
Sélectionnez Exécuter.
Observez l’exécution du pipeline.
Accédez à l’onglet Artefacts .
Dans la liste déroulante en haut, sélectionnez Tailspin.SpaceGame.Web.Models.
Vous voyez le package résultant, Tailspin.SpaceGame.Web.Models, dans Azure Artifacts.
Sélectionnez le package pour accéder à la page de détails. Ensuite, copiez le numéro de version vers un emplacement où vous pouvez y accéder ultérieurement.
Utilisez ce numéro de version dans l’unité suivante.