Attività del flusso di lavoro LabDefaultTemplate
In questo argomento vengono descritte le attività di Windows Workflow nel file LabDefaultTemplate.11.xaml. LabDefaultTemplate definisce il processo del flusso di lavoro di Lab Management tramite il quale compilare, distribuire e testare l'applicazione in un ambiente lab. Per ulteriori informazioni su Windows Workflow, vedere la pagina del sito Web MSDN relativa all'introduzione a Windows Workflow Foundation (WF) in .NET 4 per sviluppatori.
Requisiti
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Test Professional
Inizializzazione del flusso di lavoro
La radice di LabDefaultTemplate è l'attività TfsBuild.Process. ActivityBuilder inizializza gli argomenti globali della definizione di compilazione del flusso di lavoro dall'input specificato nella finestra Definizione di compilazione e nella Configurazione guidata Parametri Lab Workflow.
Argomenti
L'argomento LabWorkflowParameters contiene i dati specificati nella Configurazione guidata Parametri Lab Workflow. Questo argomento è un oggetto LabWorkflowDetails che contiene gli oggetti riportati di seguito:
BuildDetails |
Oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails in cui sono archiviati i dettagli di compilazione per il flusso di lavoro di compilazione, distribuzione e test. |
DeploymentDetails |
Oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails in cui sono archiviate le informazioni necessarie per la distribuzione di una compilazione nel flusso di lavoro. |
EnvironmentDetails |
Oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails in cui sono archiviate le informazioni di identificazione dell'ambiente da utilizzare per uno scenario di compilazione, distribuzione e test. |
TestParameters |
Oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails in cui sono archiviati i dettagli dei parametri di test necessari per creare l'esecuzione dei test automatizzati. |
Anche gli argomenti seguenti vengono dichiarati nell'ambito globale:
Argomento |
Tipo |
---|---|
Metadata |
MetaDataCollection di ProcessParameter |
Verbosity |
Valore Verbosity enumerato che specifica la quantità di informazioni scritte nel log. |
BuildNumberFormat |
Oggetto String che specifica il formato del numero di build. |
SupportedReasons |
Valore BuildReason enumerato che specifica il motivo per la compilazione. |
Sequenza del flusso di lavoro di distribuzione dell'applicazione
![]() |
La sequenza Flusso di lavoro di distribuzione dell'applicazione controlla l'intero scenario di compilazione, distribuzione e test. In Flusso di lavoro di distribuzione dell'applicazione vengono dichiarate le seguenti variabili:
|
Esecuzione della compilazione
Aggiorna numero build |
Aggiorna numero build espande e restituisce il numero di build nell'argomento BuildNumberFormat. Aggiorna numero build è un'attività Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber. |
Ottieni dettagli di compilazione |
Ottieni dettagli di compilazione restituisce i dati necessari per eseguire o accedere alla compilazione specificata nella procedura guidata del flusso di lavoro. L'oggetto IBuildDetail viene archiviato nella variabile BuildDetail. Ottieni dettagli di compilazione è un'attività Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail. Con il modello vengono impostate le seguenti proprietà:
|
![]() |
Se la compilazione è necessaria determina se una nuova compilazione è necessaria per un processo di compilazione di Team System. Se le condizioni vengono soddisfatte, il flusso di lavoro esegue la sequenza Esegui compilazione. |
![]() |
La sequenza Esegui compilazione avvia la compilazione, ne attende il completamento, quindi imposta il percorso di compilazione. |
Avvia flusso di lavoro compilazione |
Avvia flusso di lavoro compilazione accoda una nuova compilazione nel controller di compilazione specificato e restituisce l'ID della compilazione in coda nella variabile QueueBuildId. Avvia flusso di lavoro compilazione è un'attività RunWorkflow. Con il modello vengono impostate le seguenti proprietà:
|
Attendi completamento compilazione |
Attendi completamento compilazione sospende l'esecuzione finché la compilazione non è completa o è trascorso un intervallo di timeout. L'attività genera un'eccezione se viene raggiunto il timeout. L'attività restituisce lo stato della compilazione nella variabile BuildStatus e i dati sulla nuova compilazione nella variabile ChildBuildDetail . Attendi completamento compilazione è un'attività WaitForWorkflow. Con il modello vengono impostati i valori delle proprietà seguenti:
|
Imposta percorso di compilazione |
Imposta percorso di compilazione assegna il percorso della compilazione dalla variabile ChildBuildDetail alla proprietà BuildDetails.BuildUri dell'argomento LabWorkflowParameters. |
Distribuzione dell'applicazione
Aggiorna riepilogo distribuzione |
Aggiorna riepilogo distribuzione scrive il nome dell'ambiente di destinazione di distribuzione nella pagina di compilazione. Aggiorna riepilogo distribuzione è un'attività WriteDeploymentInformation. |
GetBuildLocationAndBuildNumber |
GetBuildLocationAndBuildNumber restituisce la destinazione finale della compilazione alla variabile BuildLocation. GetBuildLocationAndBuildNumber è un'attività GetBuildLocationAndBuildNumber. Con il modello vengono impostate le seguenti proprietà:
|
![]() |
Se le condizioni in Calcola percorso compilazione necessario vengono soddisfatte, Calcola percorso compilazione aggiunge le sottocartelle di configurazione della piattaforma e della compilazione alla destinazione finale. |
![]() |
Se l'utente ha selezionato l'ambiente archiviato controlla che l'ambiente venga distribuito e Indica errore genera un'eccezione se l'ambiente è archiviato nella libreria. |
Ottieni ambiente lab |
Ottieni ambiente lab restituisce l'URI dell'ambiente alla variabile LabEnvironmentUri. Ottieni ambiente lab è un'attività GetLabEnvironmentUri. Con il modello vengono impostate le seguenti proprietà:
|
![]() |
Se Ripristina snapshot determina se l'utente ha richiesto il ripristino dell'ambiente su uno snapshot pulito. Se la condizione viene soddisfatta, la sequenza Ripristina snapshot viene eseguita; in caso contrario Snapshot pulizia non specificato scrive un messaggio di avviso nel riepilogo della compilazione. |
![]() |
Nella sequenza Ripristina snapshot Ottieni dettagli di snapshot calcola l'ID dello snapshot e Ripristina ambiente lab su snapshot esegue il ripristino. |
Ottieni dettagli di snapshot |
Ottieni dettagli di snapshot è un'attività GetLabEnvironmentSnapshotId. Con il modello vengono impostate le seguenti proprietà:
|
Ripristina ambiente lab su snapshot |
Ripristina ambiente lab su snapshot è un'attività RestoreLabEnvironment. Con il modello vengono impostate le seguenti proprietà:
|
![]() |
Se distribuzione necessaria determina se l'utente ha richiesto una distribuzione. |
![]() |
Se la condizione viene soddisfatta, la sequenza Esegui distribuzione viene eseguita. |
Attendi che la capacità del flusso di lavoro sia pronta |
Attendi che la capacità del flusso di lavoro sia pronta sospende l'esecuzione finché la capacità del flusso di lavoro dell'ambiente sia pronta o venga raggiunto un intervallo di timeout. Se l'intervallo di timeout viene superato, viene generata un'eccezione. Attendi che la capacità del flusso di lavoro sia pronta è un'attività WaitForWorkflowCapabilityServices. Con il modello vengono impostate le seguenti proprietà:
|
![]() |
Esegui script di distribuzione esegue la sequenza Esegui script su sistema lab su ogni script di distribuzione contenuto nell'elenco delle proprietà DeploymentDetails.Scripts dell'argomento LabWorkflowParameters. |
![]() |
La sequenza Esegui script su sistema lab esegue lo script specificato in una macchina virtuale nell'ambiente. Esegui script su sistema lab dichiara le seguenti variabili:
|
Inizializza tag agente e script di distribuzione |
Inizializza tag agente e script di distribuzione espande le macro ed i tag dello script e restituisce i risultati in un oggetto ScriptDetails. Inizializza tag agente e script di distribuzione è un'attività InitializeAgentSpecAndEnvironmentVariables. Con il modello vengono impostati i seguenti valori:
|
Ambito agente lab |
Ambito agente lab determina se l'agente lab è installato e in esecuzione nella macchina virtuale di destinazione e quindi chiama Esecuzione script di distribuzione per eseguire lo script. Viene generata un'eccezione se uno degli script non riesce su un computer. Ambito agente lab è un'attività Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope. Con il modello vengono impostate le seguenti proprietà:
|
Esecuzione script di distribuzione |
Esecuzione script di distribuzione esegue lo script di distribuzione nella macchina virtuale di destinazione. Esecuzione script di distribuzione è un'attività RunDeploymentScript. Con il modello vengono impostati i seguenti valori:
|
Distribuzione dell'applicazione riuscita |
Distribuzione dell'applicazione riuscita scrive informazioni nel riepilogo della compilazione. Distribuzione dell'applicazione riuscita è un'attività WriteDeploymentInformation. |
![]() |
Snapshot post-distribuzione determina se l'utente ha richiesto il salvataggio di uno snapshot dell'ambiente dopo la distribuzione. Se questa condizione viene soddisfatta, la sequenza Crea snapshot post-distribuzione viene eseguita. In caso contrario, Snapshot post-distribuzione non specificato scrive un messaggio di avviso nel log. |
![]() |
Sequenza di Crea snapshot post-distribuzione Crea snapshot post-distribuzione dichiara le seguenti variabili: |
![]() |
Controlla nome snapshot determina se è stato specificato un nome per lo snapshot. Se la condizione viene soddisfatta, il nome specificato viene utilizzato; in caso contrario viene utilizzato il valore predefinito. |
Creazione snapshot post-distribuzione |
Creazione snapshot post-distribuzione è un'attività SnapshotLabEnvironment con la quale viene creato lo snapshot. Con il modello vengono impostate le seguenti proprietà:
|
Applicazione snapshot completata |
Applicazione snapshot completata scrive il nome dello snapshot nel riepilogo della compilazione. Applicazione snapshot completata è un'attività WriteDeploymentInformation. |
Collegamento di connessione aggiunto allo snapshot |
Collegamento di connessione aggiunto allo snapshot scrive l'URL dello snapshot nel riepilogo della compilazione. Collegamento di connessione aggiunto allo snapshot è un'attività WriteDeploymentInformation. |
Esecuzione dei test
![]() |
Esegui test in ambiente determina se sono stati richiesti test automatizzati. Se la condizione viene soddisfatta, la sequenza Esegui test viene eseguita. |
![]() |
Eseguire test Esegui test dichiara le seguenti variabili:
|
Attendi che le funzionalità di test siano pronte |
Attendi che le funzionalità di test siano pronte sospende l'esecuzione finché le funzionalità di test dell'ambiente non siano pronte o venga raggiunto un intervallo di timeout. Se l'intervallo di timeout viene superato, viene generata un'eccezione. Attendi che le funzionalità di test siano pronte è un'attività WaitForTestCapabilityServices. Con il modello vengono impostate le seguenti proprietà:
|
Esecuzione dei test |
Esecuzione test esegue i test e ne restituisce i risultati. Esecuzione test è un'attività ExecuteRemoteTestRun. Con il modello vengono impostati i seguenti valori:
|
![]() |
Se tutti i test non sono stati superati determina se qualche test ha avuto esito negativo ed esegue Imposta stato compilazione se la condizione viene soddisfatta. |
Imposta stato compilazione |
Imposta stato compilazione determina se il flusso di lavoro include la compilazione o la distribuzione dell'applicazione. Se questa condizione viene soddisfatta, Parzialmente completato imposta lo stato del flusso di lavoro sul valore BuildStatus.PartiallySucceeded. In caso contrario, Non superato imposta la variabile BuildStatus su Failed. |