Partager via


Création de scripts de déploiement pour des flux de travail de génération, de déploiement et de test

 

Publication: juillet 2016

Pour déployer votre application avec un flux de travail de génération, de déploiement et de test, vous devez créer des scripts de déploiement et les ajouter à votre build. Les scripts de déploiement sont des fichiers BAT ou CMD qui copient votre build vers les ordinateurs de votre environnement lab. Si votre build contient un package d'installation, vous pouvez aussi utiliser vos scripts de déploiement pour exécuter le package d'installation. Lorsque vous créez votre flux de travail de génération, de déploiement et de test, vous ajoutez des commandes au flux de travail qui exécutent vos scripts de déploiement. Lorsque vos exécutez votre flux de travail, le contrôleur de build exécute ces commandes dans le répertoire de travail des ordinateurs spécifiés dans votre environnement lab.

Voir Créer un flux de travail de génération, de déploiement et de test pour un environnement SCVMM ou Créer un flux de travail de génération, de déploiement et de test pour un environnement standard. Les sections suivantes décrivent comment créer et utiliser les scripts de déploiement avec votre flux de travail de génération, de déploiement et de test :

  • Préparation des fichiers de build pour le déploiement

  • Écriture de vos scripts de déploiement

  • Génération de vos scripts de déploiement

  • Configuration de vos répertoires de travail

  • Ajout des scripts de déploiement à votre flux de travail

Pour plus d'exemples, consultez Automatisation des tests système

Spécifications

  • Visual Studio Enterprise, Visual Studio Test Professional

Préparation des fichiers de build pour le déploiement

La façon dont vous choisissez d'installer votre application déterminera les principales tâches que vos scripts de déploiement devront effectuer. L'installation de votre application peut seulement impliquer la copie d'un EXE vers un ordinateur client, ou peut impliquer l'exécution d'un package de déploiement qui installe des fichiers sur plusieurs ordinateurs. Le tableau suivant décrit ces tâches pour chaque type de déploiement.

Important

Si votre application utilise des logiciels requis qui ne sont pas installés et configurés par vos scripts de déploiement avant son déploiement, vous devez les installer manuellement lorsque vous préparez les ordinateurs dans votre environnement lab.Si vous utilisez un environnement SCVMM qui déploie des instantanés d'environnement, vous devez vous assurez que les logiciels requis sont installés sur les instantanés.

Type d'installation

Description

Package de déploiement de service web

System_CAPS_warningAvertissement

Si vous déployez une application qui utilise IIS, le service d'agent de déploiement web doit être configuré sur le serveur IIS de votre environnement lab avant de déployer votre application.

Vos scripts de déploiement doivent copier vos fichiers de build et votre package de déploiement vers les ordinateurs cibles de votre environnement lab, puis exécuter le package de déploiement. Pour ce faire, vous devez passer un nom de domaine, un nom de compte de service et un nom de serveur TFS à votre script de déploiement, en tant que paramètres. Ce type d'installation requiert généralement que vous installiez et configuriez manuellement les logiciels requis tels qu'un serveur web ou un serveur de base de données avant de déployer votre application. La configuration des logiciels requis peut nécessiter des tâches spécifiques qui activent le déploiement de l'application sur l'ordinateur cible. Par exemple, si votre application utilise IIS, le service d'agent de déploiement web doit être configuré sur le serveur IIS de votre environnement lab avant de déployer votre application.

Fichiers de build sans package d'installation

Vos scripts de déploiement doivent copier vos fichiers d'application et de build vers les ordinateurs cibles de votre environnement lab.

Package d'installation

System_CAPS_warningAvertissement

Si vous déployez un package d'installation avec votre flux de travail de génération, de déploiement et de test, vos scripts de déploiement doivent gérer les entrées d'utilisateur générées lors de l'exécution de votre package d'installation. Sinon, le déploiement de votre application échouera.

Vos scripts de déploiement doivent copier votre package d'installation vers les ordinateurs cibles de votre environnement lab, puis l'exécuter. Lorsque vos scripts de déploiement exécutent votre package d'installation, ils doivent s'assurer qu'il s'agit d'une installation sans assistance. Les entrées d'utilisateur requises par l'installation doit être gérées par vos scripts de déploiement. Cela comprend les informations d'identification. Si vos scripts de déploiement ne gèrent pas toutes les entrées d'utilisateur lors de l'exécution de votre package d'installation, le déploiement de votre application échouera. Si vous ne déployez pas une applications web et qu'un package d'installation est requis pour votre déploiement, nous vous recommandons d'utiliser un package d'installation InstallShield. Pour plus d'informations sur InstallShield, voir Déploiement de Windows Installer.

Écriture de vos scripts de déploiement

Voici les tâches les plus courantes exécutées par les scripts de déploiement :

  • Obtenir le chemin de build sur votre contrôleur de build. Vous pouvez l'envoyer à votre script de déploiement en tant qu'argument de commande.

  • Spécifier votre chemin de déploiement.

  • Créer votre répertoire de déploiement. Vous pouvez également effectuer manuellement cette procédure, plutôt que dans votre script de déploiement. Si vous utilisez un instantané d'environnement de pré-déploiement avec votre flux de travail, vous devez simplement créer le répertoire sur les ordinateurs virtuels de votre instantané.

  • Copier votre package de déploiement depuis le chemin de build vers votre chemin de déploiement.

  • Exécuter le package de déploiement dans votre répertoire de déploiement.

Les commandes suivantes décrivent des tâches courantes effectuées par les scripts de déploiement.

REM set build path
set buildlocation=%1

REM set deployment path
set targetdir="C:\deploy"

REM create deployment directory
if not exist %targetdir% (cmd /c mkdir %targetdir%)

REM copy build to the deployment directory
xcopy /c /y /e %buildlocation%\*.* %targetdir%

REM if you are using a deployment package you can run it here, after you copy it to your deployment directory

Génération de vos scripts de déploiement

Après avoir créé vos scripts de déploiement, vous devez les archiver dans le contrôle de version, puis les configurer pour qu'ils soient copiés vers votre sortie de génération. Pour générer vos scripts de déploiement, vous devez d'abord vous assurer qu'ils sont stockés dans votre projet Visual Studio, et pas dans votre solution. Pour ce faire, dans Visual Studio, sélectionnez votre script de déploiement dans l'Explorateur de solutions, puis sous Propriétés, remplacez Copier dans le répertoire de sortie par Toujours copier.

Configuration de vos répertoires de travail

Vous pouvez spécifier un répertoire de travail pour chaque ensemble de commandes que vous ajoutez à votre flux de travail de génération, de déploiement et de test. Lorsque vous spécifiez un répertoire de travail, votre contrôleur de build exécutera les commandes spécifiées dans le répertoire de travail sur chaque ordinateur assigné à ce rôle. Si vous ne spécifiez pas de répertoire de travail quand vous ajoutez des commandes à votre flux de travail de génération, de déploiement et de test, le contrôleur de build exécutera les commandes dans le répertoire de travail par défaut (C:\Windows\System32).

Important

Ne créez pas des répertoires de travail à l'aide des commandes que vous avez ajoutées à votre flux de travail de génération, de déploiement et de test. Sinon, les répertoires ne seront pas créés avant que vos scripts de déploiement essaient d'y copier des fichiers.

Si vous spécifiez un répertoire de travail, vous devez vous assurer qu'il est créé avant que vos scripts de déploiement y copient des fichiers. Ne créez pas des répertoires de travail à l'aide des commandes que vous utilisez pour ajouter vos scripts de déploiement à votre flux de travail de génération, de déploiement et de test. Sinon, les répertoires ne seront pas créés avant que vos scripts de déploiement essaient d'y copier des fichiers. Pour vous assurer qu'un répertoire de travail est créé avant que vos scripts de déploiement y copient des fichiers, vous devez le créer manuellement sur les ordinateurs cibles de votre environnement lab, ou le répertoire doit être créé par vos scripts de déploiement avant qu'une commande y copie des fichiers.

Ajout de scripts de déploiement à votre flux de travail

Ajoutez des commandes Windows Shell à votre flux de travail de génération, de déploiement et de test pour déployer votre application dans votre environnement lab. Si vous utilisez des scripts de déploiement, les commandes doivent les copier depuis votre contrôleur de build vers le répertoire de travail des ordinateurs cibles, puis les exécuter. Toutefois, pour des installations d'application simples qui impliquent seulement la copie de quelques fichiers vers le répertoire de travail, vous pouvez utiliser les commandes shell de votre flux de travail sans spécifier de scripts de déploiement externes.

Si vous souhaitez ajouter une commande exécutée à partir d'une fenêtre d'invite, telle que mkdir, ou exécuter un fichier de commandes, vous devez faire précéder la commande de cmd /c. Par exemple, la commande cmd /c $(BuildLocation)\copyexe $(BuildLocation) où copyexe est le fichier de commandes copyexe.bat, copie un exécutable vers un répertoire local de l'ordinateur virtuel.

Variables intégrées : quand vous ajoutez ces commandes à votre flux de travail de génération, de déploiement et de test, vous pouvez utiliser des variables intégrées pour identifier certains chemins ou ordinateurs. Vous pouvez également passer ces variables à vos scripts de déploiement.

  • $(BuildLocation)
    Chemin d'accès complet où vos fichiers de build sont stockés, ou emplacement cible de build, si un emplacement est configuré dans votre flux de travail de génération, de déploiement et de test. Utilisez cette variable pour accéder à vos fichiers de build.

  • $(NomOrdinateurInterne_<Nom de l'ordinateur virtuel>)
    Nom d'un ordinateur virtuel dans un environnement SCVMM. Utilisez cette variable pour accéder à un hôte d'ordinateur virtuel quand vous ne connaissez pas son nom d'ordinateur. Si vous utilisez un script de déploiement pour configurer un serveur web qui requiert le nom de l'ordinateur, vous pouvez passer ce nom en tant qu'argument au script. Par exemple, si le nom de l'ordinateur virtuel pour le serveur web était VM1 et que le nom de l'ordinateur était MyWebServer, vous entrez $(InternalComputerName_VM1) comme argument pour votre script afin de passer la valeur MyWebServer à votre script.

  • $(NomOrdinateur_<Nom de l'ordinateur virtuel>)

    Notes

    Isolement réseau dans les environnements SCVMM : si vous utilisez l'isolement réseau pour votre environnement SCVMM, la valeur de $(InternalComputerName_<VM Name>) est la même pour l'instance d'un ordinateur virtuel dans chaque copie de cet environnement, mais celle de $(ComputerName_<VM Name>) est différente.

    Utilisez le nom de domaine qualifié complet de l'ordinateur virtuel. Utilisez cette variable pour accéder à un ordinateur, depuis l'extérieur d'un environnement SCVMM. Vous pouvez passer cette variable en tant qu'argument pour configurer un serveur web. Par exemple, si le nom de l'ordinateur virtuel pour le serveur web est VM1, vous pouvez accéder au nom de domaine qualifié complet de l'ordinateur virtuel en passant l'argument $(ComputerName_VM1) à votre script de déploiement.

Voir aussi

Flux de travail de génération, de déploiement et de test automatisé
Automatisation des tests système