Exercice - Créer un pipeline pour votre package

Effectué

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 .

  1. Ouvrez une deuxième instance de Visual Studio Code.

  2. Dans Visual Studio Code, ouvrez le terminal intégré.

  3. 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 :

  1. À partir d’un navigateur web, accédez à GitHub et connectez-vous.
  2. Accédez au projet mslearn-tailspin-spacegame-web-models .
  3. Sélectionnez Fork.
  4. 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 :

  1. Sur GitHub, accédez à votre clone du projet mslearn-tailspin-spacegame-web-models.

  2. 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.

    Capture d’écran montrant l’URL et le bouton copier à partir du dépôt GitHub.

  3. À partir de Visual Studio Code, accédez à la fenêtre de terminal et exécutez cette git clone commande. Remplacez l’URL par le contenu de votre presse-papiers.

    git clone https://github.com/your-name/mslearn-tailspin-spacegame-web-models.git
    
  4. Accé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.

  1. 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.

  2. Rouvrez le terminal intégré. Le terminal vous place à la racine de votre projet web.

  3. 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@2 tâche construit le projet :

    - task: DotNetCoreCLI@2
      displayName: 'Build the project - $(buildConfiguration)'
      inputs:
        command: 'build'
        arguments: '--no-restore --configuration $(buildConfiguration)'
        projects: '**/*.csproj'
    

    Cette DotNetCoreCLI@2 tâ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 byPrereleaseNumber sché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 serait 1.0.0-CI-20190621-042647.

    Cette tâche NuGetCommand@2 envoie (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()
    

    feedPublish spé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.Models est 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.

  1. Accédez à votre projet dans Azure DevOps.
  2. Sélectionnez Artefacts dans le menu de gauche.
  3. Sélectionnez l’icône Paramètres en haut à droite de l’écran, puis sélectionnez l’onglet Autorisations .
  4. Sélectionnez le bouton Ajouter des utilisateurs/groupes .
  5. 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.

  1. À partir d’Azure DevOps, accédez au projet Space Game - web - Dépendances .

  2. Dans le menu de gauche, sélectionnez Pipelines.

  3. Sélectionnez Nouveau pipeline.

  4. Sous l’onglet Se connecter , sélectionnez GitHub.

  5. 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.

  6. Sous l’onglet Révision, vous voyez le fichier azure-pipelines.yml du nouveau pipeline.

  7. Sélectionnez Exécuter.

  8. Observez l’exécution du pipeline.

  9. Accédez à l’onglet Artefacts .

  10. Dans la liste déroulante en haut, sélectionnez Tailspin.SpaceGame.Web.Models.

    Capture d’écran montrant l’emplacement du package dans la liste déroulante.

    Vous voyez le package résultant, Tailspin.SpaceGame.Web.Models, dans Azure Artifacts.

    Capture d’écran du package dans Azure Artifacts, montrant la version 1.0 du package.

  11. 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.

    Capture d’écran d’Azure Artifacts montrant les détails du package. En surbrillance est le numéro de version du package.

    Utilisez ce numéro de version dans l’unité suivante.