Workflowaktivitäten für LabDefaultTemplate

In diesem Thema werden die Windows Workflow-Aktivitäten in der LabDefaultTemplate.11.xaml-Datei.LabDefaultTemplate definiert den Lab Management-Workflowprozess, der Sie Build aktiviert, bereitstellen und Testen der Anwendung in einer Lab-Umgebung.Weitere Informationen zu Windows Workflow zu erfahren, finden Sie auf dieser Seite Die Einführung eines Entwicklers zu Windows Workflow Foundation (WF) in .NET 4 auf der MSDN-Website.

Anforderungen

  • Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional

Initialisieren des Workflows

Aktivität für Prozessstamm

Der Stamm des LabDefaultTemplate ist die TfsBuild.Process-Aktivität.Dies ActivityBuilder initialisiert die globalen Argumente für die Workflowbuilddefinition aus der Eingabe, die im Builddefinitionsfenster und im Assistenten für Lab-Workflowparameter angegeben wird.

Ff652752.collapse_all(de-de,VS.110).gifArgumente

Das LabWorkflowParameters-Argument enthält die Daten, die im Assistenten für Lab-Workflowparameter angegeben wird.Dieses Argument ist ein LabWorkflowDetails-Objekt, das die folgenden Objekte enthält:

BuildDetails

Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails-Objekt, das den Build speichert, wird für den Build aufgeführt, Bereitstellen und Testen von Workflows.

DeploymentDetails

Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails-Objekt, das die Informationen speichert, die für die Bereitstellung eines Builds im Workflow erforderlich ist.

EnvironmentDetails

Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails-Objekt, das die Informationen speichert, die die Umgebung identifiziert, um für Build-, Bereitstellungs- und Testszenario.

TestParameters

Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails-Objekt, das die Testparameterdetails speichert, die benötigt werden, um den automatisierten Testlauf zu erstellen.

Die folgenden Argumente werden auch im globalen Gültigkeitsbereich deklariert:

Argument

Text [Type]

Metadata

ProcessParameter MetadataCollection

Verbosity

Ein Verbosity-Enumerationswert, der die Informationsmenge angibt, die in das Protokoll geschrieben wird.

BuildNumberFormat

String, das Format der Buildnummer angibt.

SupportedReasons

Ein BuildReason- Enumerationswert, der den Grund für den Build angibt.

Anwendungs-Bereitstellungs-Workflow-Sequenz

Anwendungsbereitstellungsworkflow

Die Workflow der Anwendungsbereitstellung Folgeregelungen der gesamte Build-, Bereitstellungs- und Testszenario.

Workflow der Anwendungsbereitstellung deklariert die folgenden Variablen:

  • BuildDetail: Ein IBuildDetail-Objekt.

  • LabEnvironmnetUri: String, das den URI der Umgebung angibt, auf der der Build bereitgestellt wird.

  • BuildLocation: String, das den Speicherort des Builds angibt.

  • SnapshotId: String, das den Bezeichner einer Momentaufnahme eines virtuellen Computers angibt.

  • QueueBuildId: Int32, das den Bezeichner des Builds in der Warteschlange angibt.

Ausführen des Builds

Update-Buildnummer

Update-Buildnummer erweitert und gibt die Buildnummer im BuildNumberFormat-Argument zurück.Update-Buildnummer ist eine Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber-Aktivität.

Rufen Sie Builddetails ab

Rufen Sie Builddetails ab gibt die Daten zurück, die erforderlich ist, um auf den Build auszuführen oder zuzugreifen, der im Workflow-Assistenten angegeben wurde.Das IBuildDetail-Objekt wird in der BuildDetail-Variablen gespeichert.

Rufen Sie Builddetails ab ist eine Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • Ergebnis gibt ein IBuildDetail-Objekt zur BuildDetail-Variablen zurückgegeben.

Aktivität bei erforderlichem Build

Wenn Build erforderlich ist bestimmt, ob ein neuer Build für einen Team System-Buildprozess benötigt wird.Wenn die Bedingungen erfüllt ist, wird der Workflow die Build ausführen Sequenz aus.

Buildaktivität ausführen

Die Build ausführen Sequenz initiiert den Build, Wartung den Build abzuschließen und anschließend den Buildspeicherort fest.

Anfangsbuild-Workflow

Anfangsbuild-Workflow erstellt einen neuen Build auf dem angegebenen Buildcontroller in die Warteschlange und gibt die ID des in der Warteschlange enthaltenen Builds in der QueueBuildId-Variablen zurückgegeben.Anfangsbuild-Workflow ist eine RunWorkflow-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • BuildDefinition wird zur BuildDetails.BuildDefinitionName-Eigenschaft des LabWorkflowParameters-Arguments festgelegt.

  • Das ProjectName-Argument wird der TeamProject-Eigenschaft der BuildDetail-Variablen festgelegt.

Wartung Build abzuschließen

Wartung Build abzuschließen enthält die Ausführung an, bis der Build abgeschlossen wurde, oder ein Timeoutintervall abgelaufen ist.Die Aktivität löst eine Ausnahme aus, wenn das Timeout erreicht wird.Die Aktivität gibt den Status des Builds in der BuildStatus-Variable und in den Daten über den neuen Build in der ChildBuildDetail-Variablen zurückgegeben.Wartung Build abzuschließen ist eine WaitForWorkflow-Aktivität.Die Vorlage legt die folgenden Eigenschaftswerte fest:

  • AllowPartiallySucceededBuild wird auf TRUE gesetzt, um

  • BuildDetails gibt die Daten des neuen Builds zur ChildBuildDetail-Variablen zurückgegeben.

  • MaxWaitTime wird zu unbegrenztem festgelegt.

  • QueueBuildId gibt die Warteschlangen-ID der QueueBuildId-Buildvariablen zurückgegeben.

Festgelegter Erstellungsposition

Festgelegter Erstellungsposition weist den Speicherort des Builds aus der ChildBuildDetailBuildDetails.BuildUri-Variable der Eigenschaft des LabWorkflowParameters-Arguments an.

Bereitstellen der Anwendung

Update-Bereitstellungs-Zusammenfassung

Update-Bereitstellungs-Zusammenfassung schreibt den Namen der Bereitstellungszielumgebung zur Buildseite.Update-Bereitstellungs-Zusammenfassung ist eine WriteDeploymentInformation-Aktivität.

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumber gibt den Ablagespeicherort für den Build zu BuildLocation-Variablen zurückgegeben.GetBuildLocationAndBuildNumber ist eine GetBuildLocationAndBuildNumber-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • BuildDetails wird dem BuildDetails-Objekt festgelegt, das im LabWorkflowParameters-Argument enthalten ist

  • BuildNumber gibt die Buildnummer zur BuildNumber-Variablen zurückgegeben.

  • Ergebnis gibt den Speicherort des Builds zur BuildLocation-Variable zurück

  • SelectedBuild gibt ein Objekt IBuildDetail zur SelectedBuildDetail-Variable zurück, die die Builddaten auf dem Buildserver enthält.

Berechnen der erforderlichen Aktivität für die Erstellungsposition

Wenn die Erforderlichen Buildort berechnen Zustände erfüllt werden, fügt Buildpfad berechnen plattform- und Buildkonfigurationsunterordner dem Ablagespeicherort hinzu.

Aktivität bei Benutzerauswahl einer gespeicherten Umgebung

Wenn der ausgewählte Benutzer gespeicherten Umgebung Er überprüft, ob die Umgebung bereitgestellt wird und Fehler anzeigen eine Ausnahme auslöst, wenn die Umgebung in der Bibliothek gespeichert wird.

Rufen Sie Lab-Umgebung ab

Rufen Sie Lab-Umgebung ab gibt den URI der Umgebung in der LabEnvironmentUri-Variablen zurückgegeben.Rufen Sie Lab-Umgebung ab ist eine GetLabEnvironmentUri-Aktivität.Die Vorlage legt die folgenden properities fest:

  • LabEnvironmentName wird auf den Wert der Eigenschaft des EnvironmentDetails.LabEnvironmentNameLabWorkflowParameters-Arguments festgelegt.

  • ProjectName wird auf den Wert der Eigenschaft der TeamProjectBuildDetail-Variablen festgelegt.

  • Ergebnis gibt den URI der Lab-Umgebung zur LabEnvironmentUri-Variablen zurückgegeben.

  • TeamProjectLabLocationName wird auf den Wert der Eigenschaft des EnvironmentDetails.HostGroupNameLabWorkflowParameters-Arguments festgelegt.

  • TfsServerUrl wird festgelegt, um ungültig zu machen.

Aktivität bei Wiederherstellung einer Momentaufnahme

Wenn Wiederherstellungs-Momentaufnahme bestimmt, ob der Benutzer angefordert hat, dass die Umgebung in einer fehlerfreien Momentaufnahme wiederhergestellt wird.Wenn die Bedingung erfüllt ist, wird die Momentaufnahme reparieren Sequenz ausgeführt; andernfalls schreibt Reine Momentaufnahme nicht angegeben eine Warnmeldung zur Buildzusammenfassung.

Aktivität bei Wiederherstellung einer Momentaufnahme

In der Momentaufnahme reparieren Sequenz abgeleitet Momentaufnahmendetails abrufen die ID der Momentaufnahme, Lab-Umgebung in Momentaufnahme wiederherstellen und führt die Wiederherstellung aus.

Rufen Sie Momentaufnahme-Details ab

Momentaufnahmendetails abrufen ist eine GetLabEnvironmentSnapshotId-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • LabEnvironmentUri wird auf den Wert der LabEnvironmentUri-Variablen festgelegt.

  • Ergebnis gibt die ID der Momentaufnahme zur SnapshotId-Variablen zurückgegeben.

  • SnapshotName wird zur EnvironmentDetails.SnapshotName-Eigenschaft des LabWorkflowParameters-Arguments festgelegt.

Wiederherstellungs-Lab-Umgebung zur Momentaufnahme

Lab-Umgebung in Momentaufnahme wiederherstellen ist eine RestoreLabEnvironment-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • LabEnvironmentUri wird auf den Wert der LabEnvironmentUri-Variablen festgelegt.

  • SnapshotId wird auf den Wert der SnapshotId-Variablen festgelegt.

Aktivität bei erforderlicher Bereitstellung

Wenn die Bereitstellung erfordert bestimmt, ob der Benutzer eine Bereitstellung angefordert hat.

Bereitstellungsaktivität ausführen

Wenn die Bedingung erfüllt ist, wird die Bereitstellung ausführen Sequenz ausgeführt.

Wartung Workflow-Funktion bereit ist,

Wartung Workflow-Funktion bereit ist, Ausführung hält an, bis die Workflowfunktion der Umgebung bereit ist, oder ein Timeoutintervall erreicht wird.Wenn das Timeoutintervall überschritten wird, wird eine Ausnahme ausgelöst.Wartung Workflow-Funktion bereit ist, ist eine WaitForWorkflowCapabilityServices-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • LabEnvironmentUri wird auf den Wert der LabEnvironmentUri-Variablen festgelegt.

  • MaxWaitTime wird auf 20 Minuten festgelegt

  • RepairCapabilityBeforeWaitBegins wird False festgelegt.

Aktivität bei Ausführen von Bereitstellungsskript

Ausführungs-Bereitstellungsskripte führt die Skript auf Lab-System ausführen Sequenz auf jedem Bereitstellungsskript aus, das in der DeploymentDetails.Scripts-Eigenschaftenliste des LabWorkflowParameters-Arguments enthalten ist.

Aktivität bei Ausführen von Skript in Lab-System

Die Skripts auf Lab-System ausführen Sequenz führt das angegebene Skript auf einem virtuellen Computer in der Umgebung aus.Skripts auf Lab-System ausführen deklariert die folgenden Variablen:

Initialisieren Sie Agent-Tags und Bereitstellungsskript

Initialisieren Sie Agent-Tags und Bereitstellungsskript erweitert die Makros und die Tags des Skripts und gibt die Ergebnisse in einem ScriptDetails-Objekt zurück.Initialisieren Sie Agent-Tags und Bereitstellungsskript ist eine InitializeAgentSpecAndEnvironmentVariables-Aktivität.Die Vorlage legt die folgenden Werte fest:

  • BuildLocation wird auf den Wert der BuildLocation-Variablen festgelegt.

  • DeploymentScriptDetails wird auf den Wert der durchgelaufenen DeploymentDetails.Scripts Zeichenfolge festgelegt.

  • LabEnvironmentUri auf den Wert der LabEnvironmentUri-Variable.

  • Ergebnis gibt das erweiterte Skript zur scriptDetails-Variablen zurückgegeben.

Lab-Agent-Bereich

Lab-Agent-Bereich bestimmt, ob der Lab-Agent installiert ist und auf dem Benutzercomputer Zielvirtuellen computer und ruft dann Bereitstellungsskript wird ausgeführt., um das Skript auszuführen an.Eine Ausnahme wird ggf. aus Skripts fehlgeschlagenen auf einem Computer ausgelöst.Lab-Agent-Bereich ist eine Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • MaxExecutionTime wird zu unbegrenztem festgelegt.

  • MaxWaitTime wird auf 5 Minuten festgelegt.

  • ReservationSpec wird auf das Microsoft.Te:amFoundation.Build.Client.BuildAgentSpec-Objekt festgelegt, das die AgentSpec-Eigenschaft der scriptDetails-Variable ist.

Ausführen von Bereitstellungsskript

Bereitstellungsskript wird ausgeführt. führt das Bereitstellungsskript auf dem Quellcomputer Zielvirtuellen aus.Bereitstellungsskript wird ausgeführt. ist eine RunDeploymentScript-Aktivität.Die Vorlage legt die folgenden Werte fest:

  • ScriptDetails wird auf den Wert der scriptDetails-Variablen festgelegt.

  • ThrowOnError wird auf TRUE gesetzt, um.

  • SharedLocationForNetUse wird auf den Wert der BuildLocation-Variablen festgelegt.

Anwendungs-Bereitstellung gefolgt

Anwendungs-Bereitstellung gefolgt schreibt Informationen zur Buildzusammenfassung.Anwendungs-Bereitstellung gefolgt ist eine WriteDeploymentInformation-Aktivität.

Momentaufnahme nach Bereitstellung

Momentaufnahme nach der Bereitstellung bestimmt, ob der Benutzer angefordert hat, dass eine Momentaufnahme der Umgebung nach der Bereitstellung gespeichert werden soll.Wenn diese Bedingung erfüllt ist, wird die Momentaufnahme nach Bereitstellung erstellen Sequenz ausgeführt.Andernfalls schreibt Momentaufnahme nach Bereitstellung nicht angegeben eine Warnmeldung protokolliert.

Aktivität bei Erstellen von Momentaufnahme nach Bereitstellung

Momentaufnahme nach Bereitstellung erstellen Sequenz

Momentaufnahme nach Bereitstellung erstellen deklariert die folgenden Variablen:

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String die Vorlage wird der Standardwert dem Wert der Eigenschaft der BuildNumberBuildDetails-Variable fest.

Aktivität für Namen der Momentaufnahme überprüfen

Überprüfungs-Momentaufnahme-Name bestimmt, ob ein Momentaufnahmename angegeben wurde.Wenn die Bedingung erfüllt ist, wird der angegebene Name verwendet; andernfalls wird der Standardwert verwendet.

Erstellen der Momentaufnahme nach der Bereitstellung

Erstellen der Momentaufnahme nach der Bereitstellung ist eine SnapshotLabEnvironment-Aktivität, die die Momentaufnahme erstellt.Die Vorlage legt die folgenden Eigenschaften fest:

  • LabEnvironmentUri wird auf den Wert der LabEnvironmentUri-Variablen festgelegt.

  • SnapshotChainId gibt die ID der Momentaufnahme zur PostDeploymentSnapshotChainId-Variablen zurückgegeben.

  • SnapshotName wird auf den Wert der PostDeploymentSnapshotName-Variablen festgelegt.

Die Momentaufnahme auf gefolgt

Die Momentaufnahme auf gefolgt schreibt der Name der Momentaufnahme zur Buildzusammenfassung.Die Momentaufnahme auf gefolgt ist eine WriteDeploymentInformation-Aktivität.

Ein Verbindungslink zur Momentaufnahme

Ein Verbindungslink zur Momentaufnahme schreibt die URL der Momentaufnahme zur Buildzusammenfassung.Ein Verbindungslink zur Momentaufnahme ist eine WriteDeploymentInformation-Aktivität.

Ausführen von Tests

Aktivität bei Ausführen von Tests in der Umgebung

Ausführungs-Tests für Umgebungen bestimmt, ob automatisierte Tests angefordert wurden.Wenn die Bedingung erfüllt ist, wird die Tests ausführen Sequenz ausgeführt.

Aktivität bei Ausführen von Tests

Durchführen von Tests

Tests ausführen deklariert die folgenden Variablen:

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

  • TestResults: Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics.Die Vorlage legt den Standardwert zu einem neuen TestRunStatistics-Objekt fest.

Wartung Test-Funktionen bereit ist,

Wartung Test-Funktionen bereit ist, Ausführung hält an, bis die Testfunktion der Umgebung bereit ist, oder ein Timeoutintervall erreicht wird.Wenn das Timeoutintervall überschritten wird, wird eine Ausnahme ausgelöst.

Wartung Test-Funktionen bereit ist, ist eine WaitForTestCapabilityServices-Aktivität.Die Vorlage legt die folgenden Eigenschaften fest:

  • LabEnvironmentUri wird auf den Wert der LabEnvironmentUri-Variablen festgelegt.

  • MaxWaitTime wird auf 20 Minuten festgelegt.

  • RepairCapabilityBeforeWaitBegins wird False festgelegt.

Ausführen von Tests

Ausführen von Tests führt die Tests aus und gibt die Testergebnisse zurück.Ausführen von Tests ist eine ExecuteRemoteTestRun-Aktivität.Die Vorlage legt die folgenden Werte fest:

  • MaxWaitTime wird zu unbegrenztem festgelegt.

  • BuildNumber wird auf den Wert der BuildNumber-Variablen festgelegt.

  • TestDirectory wird auf den Wert der BuildLocation-Variablen festgelegt.

  • LabEnvironmentUri wird auf den Wert der LabEnvironmentUri-Variablen festgelegt.

  • TestParameters wird zu TestParameters-Objekt festgelegt, das im LabWorkflowParameters-Objekt enthalten ist.

  • - Objekt Ergebnis gibt Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails, das die Testergebnisse zur TestResults-Variable enthält.

  • Titel legt den Namen des Testlaufs auf den Wert der Eigenschaft der BuildNumberBuildDetail-Variable fest.

Aktivität bei Nichtbestehen aller Tests

Wenn alle Tests nicht bestanden wurden, bestimmt, ob Tests fehlgeschlagen sind und führt Buildstatus festlegen aus, wenn die Bedingung erfüllt ist.

Festgelegter Buildstatus

Buildstatus festlegen bestimmt, ob der Workflow den oder die Bereitstellung der Anwendung enthält.Wenn diese Bedingung erfüllt ist, legt den Teilweise erfolgreich Workflowstatus auf den Wert BuildStatus.PartiallySucceeded fest.Andernfalls wird Fehler die BuildStatus-Variable zu Failed fest.

Siehe auch

Konzepte

Lab Management-Workflowaktivitäten