Workflowaktivitäten für LabDefaultTemplate
In diesem Thema werden die Windows Workflow-Aktivitäten in der Datei "LabDefaultTemplate.11.xaml" beschrieben. In "LabDefaultTemplate" ist der Lab Management-Workflowprozess definiert, mit dem Sie Ihre Anwendung in einer Lab-Umgebung erstellen, bereitstellen und testen können. Weitere Informationen zu Windows Workflow finden Sie auf der Seite A Developer's Introduction to 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
Der Kern von "LabDefaultTemplate" ist die TfsBuild.Process-Aktivität. Diese ActivityBuilder-Klasse initialisiert die globalen Argumente für die Workflowbuilddefinition anhand der Eingabe im Fenster "Builddefinition" und im Assistenten für Lab-Workflowparameter.
Argumente
Das LabWorkflowParameters-Argument enthält die Daten, die im Assistenten für Lab-Workflowparameter angegeben wurden. Dieses Argument ist ein LabWorkflowDetails-Objekt, das die folgenden Objekte enthält:
BuildDetails |
Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails-Objekt, in dem die Builddetails für den Erstellen-Bereitstellen-Testen-Workflow gespeichert sind. |
DeploymentDetails |
Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails-Objekt, in dem die Informationen gespeichert sind, die für die Bereitstellung eines Builds im Workflow erforderlich sind. |
EnvironmentDetails |
Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails-Objekt, in dem die Informationen gespeichert sind, mit denen die Umgebung für das Build-, Bereitstellungs- und Testszenario definiert wird. |
TestParameters |
Ein Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails-Objekt, in dem die Testparameterdetails gespeichert sind, die zum Erstellen des automatisierten Testlaufs erforderlich sind. |
Außerdem sind folgende Argumente im globalen Gültigkeitsbereich deklariert:
Argument |
Typ |
---|---|
Metadata |
ProcessParameter-MetadataCollection |
Verbosity |
Ein Verbosity-Enumerationswert, der die Menge an Informationen angibt, die in das Protokoll geschrieben werden. |
BuildNumberFormat |
Eine String-Klasse, die das Format der Buildnummer definiert. |
SupportedReasons |
Ein BuildReason-Enumerationswert, der den Grund für den Build angibt. |
Sequenz "Workflow der Anwendungsbereitstellung"
Die Sequenz Workflow der Anwendungsbereitstellung steuert das gesamte Build-, Bereitstellungs- und Testszenario. Der Workflow der Anwendungsbereitstellung deklariert die folgenden Variablen:
|
Ausführen des Builds
Buildnummer aktualisieren |
Mit Buildnummer aktualisieren wird die Buildnummer im BuildNumberFormat-Argument erweitert und zurückgegeben. Buildnummer aktualisieren ist eine Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber-Aktivität. |
Builddetails abrufen |
Builddetails abrufen gibt die Daten zurück, die erforderlich sind, um den Build auszuführen, der im Workflow-Assistenten angegeben wurde, oder auf ihn zuzugreifen. Das IBuildDetail-Objekt wird in der BuildDetail-Variable gespeichert. Builddetails abrufen ist eine Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Wenn Build benötigt wird bestimmt, ob ein neuer Build für einen Team System-Buildprozess benötigt wird. Wenn die Bedingungen erfüllt sind, führt der Workflow die Sequenz Build ausführen aus. |
|
Die Sequenz Build ausführen initiiert den Build, wartet auf den Abschluss des Builds und legt dann den Buildspeicherort fest. |
|
Buildworkflow starten |
Buildworkflow starten stellt einen neuen Build für den angegebenen Buildcontroller in die Warteschlange und gibt die ID des in der Warteschlange enthaltenen Builds in der QueueBuildId-Variable zurück. Buildworkflow starten ist eine RunWorkflow-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Warten auf Abschluss des Buildvorgangs |
Warten auf Abschluss des Buildvorgangs hält die Ausführung an, bis der Build abgeschlossen ist oder ein Timeoutintervall abgelaufen ist. Die Aktivität löst eine Ausnahme aus, wenn das Timeout erreicht wurde. Die Aktivität gibt den Status des Builds in der BuildStatus-Variable und Daten zum neuen Build in der ChildBuildDetail -Variable zurück. Warten auf Abschluss des Buildvorgangs ist eine WaitForWorkflow-Aktivität. Die Vorlage legt folgende Eigenschaftswerte fest:
|
Buildort festlegen |
Buildort festlegen weist den Ort des Builds von der ChildBuildDetail-Variable zur BuildDetails.BuildUri-Eigenschaft des LabWorkflowParameters-Arguments zu. |
Bereitstellen der Anwendung
Bereitstellungszusammenfassung aktualisieren |
Bereitstellungszusammenfassung aktualisieren gibt den Namen der Bereitstellungszielumgebung an die Buildseite aus. Bereitstellungszusammenfassung aktualisieren ist eine WriteDeploymentInformation-Aktivität. |
GetBuildLocationAndBuildNumber |
GetBuildLocationAndBuildNumber gibt den Ablagespeicherort für den Build an die BuildLocation-Variable zurück. GetBuildLocationAndBuildNumber ist eine GetBuildLocationAndBuildNumber-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Wenn die Erforderlichen Buildort berechnen-Bedingungen erfüllt sind, werden dem Ablageort mit Buildpfad berechnen Unterordner mit der Plattform- und Buildkonfiguration hinzugefügt. |
|
Wenn vom Benutzer eine gespeicherte Umgebung ausgewählt wurde überprüft, ob die Umgebung bereitgestellt wird, und Fehler anzeigen löst eine Ausnahme aus, wenn die Umgebung in der Bibliothek gespeichert ist. |
|
Lab-Umgebung abrufen |
Lab-Umgebung abrufen gibt den URI der Umgebung an die LabEnvironmentUri-Variable zurück. Lab-Umgebung abrufen ist eine GetLabEnvironmentUri-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Wenn "Momentaufnahme reparieren" bestimmt, ob der Benutzer angefordert hat, dass die Umgebung auf eine fehlerfreie Momentaufnahme wiederhergestellt wird. Wenn die Bedingung erfüllt ist, wird die Sequenz Momentaufnahme reparieren ausgeführt; andernfalls schreibt Reine Momentaufnahme nicht angegeben eine Warnmeldung in die Buildzusammenfassung. |
|
In der Sequenz Momentaufnahme reparieren berechnet Momentaufnahmendetails abrufen die ID der Momentaufnahme, und Lab-Umgebung in Momentaufnahme wiederherstellen führt die Wiederherstellung aus. |
|
Momentaufnahmendetails abrufen |
Momentaufnahmendetails abrufen ist eine GetLabEnvironmentSnapshotId-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Lab-Umgebung in Momentaufnahme wiederherstellen |
Lab-Umgebung in Momentaufnahme wiederherstellen ist eine RestoreLabEnvironment-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Wenn Bereitstellung erforderlich bestimmt, ob der Benutzer eine Bereitstellung angefordert hat. |
|
Wenn die Bedingung erfüllt ist, wird die Sequenz Bereitstellung ausführen ausgeführt. |
|
Wartet, bis die Workflowfunktionsdienste bereit sind |
Wartet, bis die Workflowfunktionsdienste bereit sind hält die Ausführung an, bis die Workflowfunktion für die Umgebung bereit ist oder ein Timeoutintervall erreicht wird. Wenn das Timeoutintervall überschritten wird, wird eine Ausnahme ausgelöst. Wartet, bis die Workflowfunktionsdienste bereit sind ist eine WaitForWorkflowCapabilityServices-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Bereitstellungsskripts ausführen führt die Sequenz Skripts auf Lab-System ausführen für jedes Bereitstellungsskript aus, das in der DeploymentDetails.Scripts-Eigenschaftenliste des LabWorkflowParameters-Arguments enthalten ist. |
|
Die Sequenz Skripts auf Lab-System ausführen führt das angegebene Skript auf einem virtuellen Computer in der Umgebung aus. Skripts auf Lab-System ausführen deklariert die folgenden Variablen:
|
|
Agent-Tags und Bereitstellungsskript initialisieren |
Agent-Tags und Bereitstellungsskript initialisieren erweitert die Makros und die Tags des Skripts und gibt die Ergebnisse in einem ScriptDetails-Objekt zurück. Agent-Tags und Bereitstellungsskript initialisieren ist eine InitializeAgentSpecAndEnvironmentVariables-Aktivität. Die Vorlage legt folgende Werte fest:
|
Lab-Agent-Bereich |
Lab-Agent-Bereich bestimmt, ob der Lab-Agent auf dem virtuellen Zielcomputer installiert ist und ausgeführt wird, und ruft dann Ausführen von Bereitstellungsskript auf, um das Skript auszuführen. Eine Ausnahme wird ausgelöst, wenn Skripts auf einem Computer fehlschlagen. Lab-Agent-Bereich ist eine Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Ausführen von Bereitstellungsskript |
Ausführen von Bereitstellungsskript führt das Bereitstellungsskript auf dem virtuellen Zielcomputer aus. Ausführen von Bereitstellungsskript ist eine RunDeploymentScript-Aktivität. Die Vorlage legt folgende Werte fest:
|
Anwendungsbereitstellung erfolgreich |
Anwendungsbereitstellung erfolgreich schreibt Informationen in die Buildzusammenfassung. Anwendungsbereitstellung erfolgreich ist eine WriteDeploymentInformation-Aktivität. |
Momentaufnahme nach 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 Sequenz Momentaufnahme nach Bereitstellung erstellen ausgeführt. Andernfalls schreibt Momentaufnahme nach Bereitstellung nicht angegeben eine Warnmeldung in das Protokoll. |
|
Sequenz Momentaufnahme nach Bereitstellung erstellen Momentaufnahme nach Bereitstellung erstellen deklariert die folgenden Variablen: |
|
Namen der Momentaufnahme überprüfen bestimmt, ob ein Name für die Momentaufnahme angegeben wurde. Wenn die Bedingung erfüllt ist, wird der angegebene Name verwendet; andernfalls wird der Standardwert verwendet. |
|
Momentaufnahme nach Bereitstellung wird erstellt |
Momentaufnahme nach Bereitstellung wird erstellt ist eine SnapshotLabEnvironment-Aktivität, die die Momentaufnahme erstellt. Die Vorlage legt die folgenden Eigenschaften fest:
|
Erstellen der Momentaufnahme erfolgreich |
Erstellen der Momentaufnahme erfolgreich schreibt den Namen der Momentaufnahme in die Buildzusammenfassung. Erstellen der Momentaufnahme erfolgreich ist eine WriteDeploymentInformation-Aktivität. |
Hyperlink zur Momentaufnahme hinzugefügt |
Hyperlink zur Momentaufnahme hinzugefügt schreibt die URL der Momentaufnahme in die Buildzusammenfassung. Hyperlink zur Momentaufnahme hinzugefügt ist eine WriteDeploymentInformation-Aktivität. |
Tests werden ausgeführt
Umgebungstests ausführen bestimmt, ob automatisierte Tests angefordert wurden. Wenn die Bedingung erfüllt ist, wird die Sequenz Tests ausführen ausgeführt. |
|
Durchführen von Tests Tests ausführen deklariert die folgenden Variablen:
|
|
Wartet, bis die Testfunktionsdienste bereit sind |
Wartet, bis die Testfunktionsdienste bereit sind hält die Ausführung an, bis die Testfunktion der Umgebung bereit ist oder ein Timeoutintervall erreicht wird. Wenn das Timeoutintervall überschritten wird, wird eine Ausnahme ausgelöst. Wartet, bis die Testfunktionsdienste bereit sind ist eine WaitForTestCapabilityServices-Aktivität. Die Vorlage legt die folgenden Eigenschaften fest:
|
Tests werden ausgeführt |
Tests werden ausgeführt führt die Tests aus und gibt die Testergebnisse zurück. Tests werden ausgeführt ist eine ExecuteRemoteTestRun-Aktivität. Die Vorlage legt folgende Werte fest:
|
Wenn kein Test bestanden wurde bestimmt, ob Tests fehlgeschlagen sind und führt Buildstatus festlegen aus, wenn die Bedingung erfüllt ist. |
|
Buildstatus festlegen |
Buildstatus festlegen bestimmt, ob der Workflow den Build oder die Bereitstellung der Anwendung enthält. Wenn diese Bedingung erfüllt ist, wird der Workflowstatus mit Teilweise erfolgreich auf den BuildStatus.PartiallySucceeded-Wert festgelegt. Andernfalls wird die BuildStatus-Variable mit Fehler auf Failed festgelegt. |