Activités de flux de travail LabDefaultTemplate
Cette rubrique décrit les activités Windows Workflow dans le fichier LabDefaultTemplate.11.xaml. LabDefaultTemplate définit le processus de flux de travail Lab Management qui vous permet de générer, déployer, et tester votre application dans un environnement lab. Pour en savoir plus sur Windows Workflow, voir la Présentation de Windows Workflow Foundation (WF) dans .NET 4 pour les développeurs sur le site web MSDN.
Spécifications
- Visual Studio Enterprise, Visual Studio Test Professional
Initialisation du flux de travail
La racine de LabDefaultTemplate est l'activité TfsBuild.Process. Ce ActivityBuilder initialise les arguments globaux pour la définition de build du flux de travail depuis l'entrée spécifiée dans la fenêtre Définition de build et dans l'Assistant Paramètres de flux de travail lab.
Arguments
L'argument LabWorkflowParameters contient les données fournies dans l'Assistant Paramètres de flux de travail lab. Cet argument est un objet b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_LabWorkflowDetailsClass qui contient les objets suivants :
BuildDetails |
Objet b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_BuildDetailsObject qui stocke les détails de build pour le flux de travail de génération, de déploiement et de test. |
DeploymentDetails |
Objet b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_LabEnvironmentDetailsObject qui stocke les informations requises pour le déploiement d'une build dans le flux de travail. |
EnvironmentDetails |
Objet b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_LabEnvironmentDetailsObject qui stocke les informations qui identifient l'environnement à utiliser pour une build dans un scénario de génération, de déploiement et de test. |
TestParameters |
Objet b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RunTestDetailsObject qui stocke les détails de paramètre de test requis pour créer la série de tests automatisés. |
Les arguments suivant sont également déclarés dans la portée globale :
Argument |
Type |
---|---|
Metadata |
ProcessParameterMetadataCollection |
Verbosity |
Valeur énumérée T:Microsoft.TeamFoundation.Build.Workflow.Verbosity qui spécifie la quantité d'informations écrites dans le journal. |
BuildNumberFormat |
String qui spécifie le format du numéro de build. |
SupportedReasons |
Valeur énumérée BuildReasonqui spécifie les raisons de la build. |
Séquence du flux de travail du déploiement d'une application
La séquence Flux de travail du déploiement d'une application contrôle l'intégralité du scénario de génération, de déploiement et de test. Le flux de travail du déploiement d'une application déclare les variables suivantes :
|
Exécution de la build
Mettre à jour le numéro de build |
Mettre à jour le numéro de build développe et retourne le numéro de build dans l'argument BuildNumberFormat. Mettre à jour le numéro de build est une activité a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_UpdateBuildNumber. |
Obtenir les détails de la build |
Obtenir les détails de la build retourne les données requises pour exécuter ou accéder à la build spécifiée dans l'Assistant Flux de Travail. L'objet IBuildDetail est stocké dans la variable BuildDetail. Obtenir les détails de la build est une activité a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_GetBuildDetail. Le modèle définit les propriétés suivantes :
|
Si une build est nécessaire détermine si une nouvelle build est requise pour un processus de génération Team System. Si les conditions sont remplies, le flux de travail exécute la séquence Effectuer la build. |
|
La séquence Effectuer la build initialise la build, attend la fin de la génération, puis définit l'emplacement de la build. |
|
Démarrer le flux de travail de build |
Démarrer le flux de travail de build met en file d'attente une nouvelle build sur le contrôleur de build spécifié et retourne l'ID de la build en file d'attente dans la variable QueueBuildId. Démarrer le flux de travail de build est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RunWorkflow. Le modèle définit les propriétés suivantes :
|
Attendre la fin de la génération |
Attendre la fin de la génération suspend l'exécution jusqu'à ce que la génération soit terminée ou que l'intervalle de délai d'attente soit écoulé. L'activité lève une exception si le délai d'attente est atteint. L'activité retourne l'état de la build dans la variable BuildStatus, et les données sur la nouvelle build dans la variable ChildBuildDetail . Attendre la fin de la génération est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WaitForWorkflow. Le modèle définit les valeurs de propriétés suivantes :
|
Définir l'emplacement de build |
Définir l'emplacement de build assigne l'emplacement de la build de la variable ChildBuildDetail à la propriété BuildDetails.BuildUri de l'argument LabWorkflowParameters. |
Déploiement de l'application
Mettre à jour le résumé du déploiement |
Mettre à jour le résumé du déploiement écrit le nom de l'environnement de déploiement cible dans la page de build. Mettre à jour le résumé du déploiement est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation. |
GetBuildLocationAndBuildNumber |
GetBuildLocationAndBuildNumber retourne l'emplacement cible de la build dans la variable BuildLocation. GetBuildLocationAndBuildNumber est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_GetBuildLocationAndBuildNumber. Le modèle définit les propriétés suivantes :
|
Si les conditions Calculer l'emplacement de build nécessaire sont remplies, Calculer le chemin de build ajoute les sous-dossiers de configuration de la plateforme et de la build à l'emplacement cible. |
|
Si l'utilisateur a sélectionné l'environnement stocké vérifie si l'environnement est déployé, et Indiquer l'erreur lève une exception si l'environnement est stocké dans la bibliothèque. |
|
Obtenir l'environnement lab |
Obtenir l'environnement lab retourne l'URI de l'environnement dans la variable LabEnvironmentUri. Obtenir l'environnement lab est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_GetLabEnvironmentUri. Le modèle définit les propriétés suivantes :
|
Si restaurer l'instantané détermine si l'utilisateur a demandé que l'environnement soit restauré à un instantané propre. Si la condition est remplie, la séquence Restaurer l'instantané est exécutée ; sinon Instantané propre non spécifié écrit un message d'avertissement dans le résumé de la build. |
|
Dans la séquence Restaurer l'instantané, Obtenir les détails de l'instantané calcule l'ID de l'instantané, et Restaurer l'environnement vers un instantané effectue la restauration. |
|
Obtenir les détails de l'instantané |
Obtenir les détails de l'instantané est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_GetLabEnvironmentSnapshotId. Le modèle définit les propriétés suivantes :
|
Restaurer l'environnement vers un instantané |
Restaurer l'environnement vers un instantané est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RestoreLabEnvironment. Le modèle définit les propriétés suivantes :
|
Si déploiement requis détermine si l'utilisateur a demandé un déploiement. |
|
Si la condition est remplie, la séquence Effectuer le déploiement est exécutée. |
|
Attendre que la fonctionnalité de flux de travail soit prête |
Attendre que la fonctionnalité de flux de travail soit prête suspend l'exécution jusqu'à ce que la fonctionnalité de flux de travail soit prête ou que l'intervalle de délai d'attente soit écoulé. Si l'intervalle de délai d'attente est écoulé, une exception est levée. Attendre que la fonctionnalité de flux de travail soit prête est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WaitForWorkflowCapabilityServices. Le modèle définit les propriétés suivantes :
|
Exécuter les scripts de déploiement exécute la séquence Exécuter le script sur le système lab sur chaque script de déploiement contenu dans la liste de propriétés DeploymentDetails.Scripts de l'argument LabWorkflowParameters. |
|
La séquence Exécuter le script sur le système lab exécute le script spécifié sur un ordinateur virtuel de l'environnement. Exécuter le script sur le système lab déclare les variables suivantes :
|
|
Initialiser les balises d'agent et le script de déploiement |
Initialiser les balises d'agent et le script de déploiement développe les macros et balises du script et retourne le résultat dans un objet b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_ScriptDetailsObject. Initialiser les balises d'agent et le script de déploiement est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_InitializeAgentSpecAndEnvironmentVariables. Le modèle définit les valeurs suivantes :
|
Portée de l'agent lab |
Portée de l'agent lab détermine si l'agent lab est installé et en cours d'exécution sur l'ordinateur virtuel cible puis appelle Exécution du script de déploiement pour exécuter le script. Une exception est levée si l'un des scripts échoue sur un ordinateur. Portée de l'agent lab est une activité a7c92c11-6bbb-4b5e-ab35-af5edb7c6cf5#Activity_AgentScope. Le modèle définit les propriétés suivantes :
|
Exécution du script de déploiement |
Exécution du script de déploiement exécute le script de déploiement sur l'ordinateur virtuel cible. Exécution du script de déploiement est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_RunDeploymentScript. Le modèle définit les valeurs suivantes :
|
Déploiement de l'application terminé |
Déploiement de l'application terminé écrit les informations dans le résumé de la build. Déploiement de l'application terminé est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation. |
Instantané de post-déploiement détermine si l'utilisateur a demandé qu'un instantané de l'environnement soit enregistré après le déploiement. Si cette condition est remplie, la séquence Réaliser un instantané post-déploiement est exécutée. Sinon, Instantané post-déploiement non spécifié écrit un message d'avertissement dans le journal. |
|
Séquence Réaliser un instantané post-déploiement Réaliser un instantané post-déploiement déclare les variables suivantes : |
|
Vérifier le nom de l'instantané détermine si un nom d'instantané a été spécifié. Si la condition est remplie, le nom spécifié est utilisé ; sinon, la valeur par défaut est utilisée. |
|
Réalisation de l'instantané post-déploiement |
Réalisation de l'instantané post-déploiement est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_SnapshotLabEnvironment qui crée l'instantané. Le modèle définit les propriétés suivantes :
|
Instantané réussi |
Instantané réussi écrit le nom de l'instantané dans le résumé de la build. Instantané réussi est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation. |
Lien de connexion ajouté à l'instantané |
Lien de connexion ajouté à l'instantané écrit l'Url de l'instantané dans le résumé de la build. Lien de connexion ajouté à l'instantané est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WriteDeploymentInformation. |
Exécution des tests
Exécuter les tests sur l'environnement détermine si des tests automatisés ont été demandés. Si la condition est remplie, la séquence Exécuter les tests est exécutée. |
|
Exécuter les tests Exécuter les tests déclare les variables suivantes :
|
|
Attendre que les fonctionnalités de test soient prêtes |
Attendre que les fonctionnalités de test soient prêtes suspend l'exécution jusqu'à ce que les fonctionnalités de test de l'environnement soient prêtes ou que l'intervalle de délai d'attente soit écoulé. Si l'intervalle de délai d'attente est écoulé, une exception est levée. Attendre que les fonctionnalités de test soient prêtes est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_WaitForTestCapabilityServices. Le modèle définit les propriétés suivantes :
|
Exécution des tests |
Exécution des tests exécute les tests et retourne les résultats des tests. Exécution des tests est une activité b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_ExecuteRemoteTestRun. Le modèle définit les valeurs suivantes :
|
Si tous les tests n'ont pas réussi détermine si des tests ont échoué, et exécute Définir l'état de la build si la condition est remplie. |
|
Définir l'état de la build |
Définir l'état de la build détermine si le flux de travail inclut la génération ou le déploiement de l'application. Si la condition est remplie, Succès partiel définit l'état du flux de travail sur la valeur BuildStatus.PartiallySucceeded. Sinon, Échec définit la variable BuildStatus sur Failed. |