Partager via


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

Activité Traiter la racine

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

Workflow de déploiement d'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 :

  • BuildDetail : objet IBuildDetail.

  • LabEnvironmnetUri : String qui spécifie l'URI de l'environnement sur lequel la build est déployée.

  • BuildLocation : String qui spécifie l'emplacement de la build.

  • SnapshotId : String qui spécifie l'identificateur d'un instantané d'ordinateur virtuel.

  • QueueBuildId : Int32 qui spécifie l'identificateur de la build dans la file d'attente.

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 :

  • Result retourne un objet IBuildDetail dans la variable BuildDetail.

Activité Si la build est requise

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.

Effectuer l'activité de 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 :

  • BuildDefinition est défini sur la propriété BuildDetails.BuildDefinitionName de l'argument LabWorkflowParameters.

  • L'argument ProjectName est défini sur la propriété TeamProject de la variable BuildDetail.

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 :

  • AllowPartiallySucceededBuild est défini sur True.

  • BuildDetails retourne les données de la nouvelle build dans la variable ChildBuildDetail.

  • MaxWaitTime est défini sur Infini.

  • QueueBuildId retourne l'ID de file d'attente de la build dans la variable QueueBuildId.

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 :

  • BuildDetails est défini sur l'objet BuildDetails contenu dans l'argument LabWorkflowParameters.

  • BuildNumber retourne le numéro de build dans la variable BuildNumber.

  • Result retourne l'emplacement de la build dans la variable BuildLocation.

  • SelectedBuild retourne un objet IBuildDetail dans la variable SelectedBuildDetail qui contient les données de build du serveur de builds.

Calculer l'activité requise pour l'emplacement de la build

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.

Activité Si l'utilisateur sélectionné a stocké l'environnement

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 :

  • LabEnvironmentName est défini sur la valeur de la propriété EnvironmentDetails.LabEnvironmentName de l'argument LabWorkflowParameters.

  • ProjectName est défini sur la propriété TeamProject de la variable BuildDetail.

  • Result retourne l'URI de l'environnement lab dans la variable LabEnvironmentUri.

  • TeamProjectLabLocationName est défini sur la valeur de la propriété EnvironmentDetails.HostGroupName de l'argument LabWorkflowParameters.

  • TfsServerUrl est défini sur Null.

Activité Si restauration d'instantané

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.

Activité Restaurer l'instantané

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 :

  • LabEnvironmentUri est défini sur la valeur de la variable LabEnvironmentUri.

  • Result retourne l'ID de l'instantané dans la variable SnapshotId.

  • SnapshotName est défini sur la propriété EnvironmentDetails.SnapshotName de l'argument LabWorkflowParameters.

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 :

  • LabEnvironmentUri est défini sur la valeur de la variable LabEnvironmentUri.

  • SnapshotId est défini sur la valeur de la variable SnapshotId.

Activité Si le déploiement est requis

Si déploiement requis détermine si l'utilisateur a demandé un déploiement.

Effectuer l'activité de 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 :

  • LabEnvironmentUri est défini sur la valeur de la variable LabEnvironmentUri.

  • MaxWaitTime est défini sur 20 minutes

  • RepairCapabilityBeforeWaitBegins est défini sur False.

Activité Exécuter un script de déploiement

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.

Activité Exécuter un script dans le système lab

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 :

  • scriptDetails : b3f645d4-2db0-40e7-b8bf-eedca5d82ba8#BKMK_ScriptDetailsObject

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 :

  • BuildLocation est défini sur la valeur de la variable BuildLocation.

  • DeploymentScriptDetails est défini sur la valeur de la chaîne DeploymentDetails.Scripts itérée.

  • LabEnvironmentUri est défini sur la valeur de la variable LabEnvironmentUri.

  • Result retourne le scripte développé dans la variable scriptDetails.

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 :

  • MaxExecutionTime est défini sur Infini.

  • MaxWaitTime est défini sur 5 minutes.

  • ReservationSpec est défini sur l'objet Microsoft.Te:amFoundation.Build.Client.BuildAgentSpec qui est la propriété AgentSpec de la variable scriptDetails.

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 :

  • ScriptDetails est défini sur la valeur de la variable scriptDetails.

  • ThrowOnError est défini sur True.

  • SharedLocationForNetUse est défini sur la valeur de la variable BuildLocation.

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

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.

Activité Prendre un instantané de post-déploiement

Séquence Réaliser un instantané post-déploiement

Réaliser un instantané post-déploiement déclare les variables suivantes :

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName : String Le modèle définit la valeur par défaut sur la valeur de la propriété BuildNumber de la variable BuildDetails.

Vérifier l'activité de nom d'instantané

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 :

  • LabEnvironmentUri est défini sur la valeur de la variable LabEnvironmentUri.

  • SnapshotChainId retourne l'ID de l'instantané dans la variable PostDeploymentSnapshotChainId.

  • SnapshotName est défini sur la valeur de la variable PostDeploymentSnapshotName.

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

Activité Exécuter des tests dans l'environnement

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.

Activité Exécuter des tests

Exécuter les tests

Exécuter les tests déclare les variables suivantes :

  • TestCapabilityInfo : Microsoft.TeamFoundation.Lab.Client.TestingCapabilityInformation.

  • TestResults : Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics. Le modèle définit la valeur par défaut sur un nouvel object TestRunStatistics.

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 :

  • LabEnvironmentUri est défini sur la valeur de la variable LabEnvironmentUri.

  • MaxWaitTime est défini sur 20 minutes

  • RepairCapabilityBeforeWaitBegins est défini sur False.

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 :

  • MaxWaitTime est défini sur Infini.

  • BuildNumber est défini sur la valeur de la variable BuildNumber.

  • TestDirectory est défini sur la valeur de la variable BuildLocation.

  • LabEnvironmentUri est défini sur la valeur de la variable LabEnvironmentUri.

  • TestParameters est défini sur l'objet TestParameters contenu dans l'objet LabWorkflowParameters.

  • Result retourne un objet Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails contenant les résultats de test dans la variable TestResults.

  • Title définit le nom de la série de tests sur la valeur de la propriété BuildNumber de la variable BuildDetail.

Activité Si tous les tests n'ont pas été réussis

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.

Voir aussi

Activités de flux de travail Lab Management