Condividi tramite


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

Attività radice del processo

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

Flusso di lavoro di distribuzione di applicazioni

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:

  • BuildDetail: oggetto IBuildDetail.

  • LabEnvironmnetUri: oggetto String che specifica l'URI dell'ambiente in cui viene distribuita la compilazione.

  • BuildLocation: oggetto String che specifica il percorso della compilazione.

  • SnapshotId: oggetto String che specifica l'identificatore dello snapshot di una macchina virtuale.

  • QueueBuildId: oggetto Int32 che specifica l'identificatore della compilazione nella coda.

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à:

  • Result restituisce un oggetto IBuildDetail alla variabile BuildDetail.

Attività di compilazione necessaria

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.

Attività 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à:

  • L'oggetto BuildDefinition viene impostato sulla proprietà BuildDetails.BuildDefinitionName dell'argomento LabWorkflowParameters.

  • L'argomento ProjectName viene impostato sulla proprietà TeamProject della variabile BuildDetail.

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:

  • AllowPartiallySucceededBuild viene impostata su true.

  • BuildDetails restituisce i nuovi dati di compilazione alla variabile ChildBuildDetail.

  • MaxWaitTime viene impostata su infinito.

  • QueueBuildId restituisce l'ID della coda della variabile QueueBuildId di compilazione.

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à:

  • BuildDetails viene impostata sull'oggetto BuildDetails contenuto nell'argomento LabWorkflowParameters.

  • BuildNumber restituisce il numero di compilazione alla variabile BuildNumber.

  • Result restituisce il percorso della compilazione alla variabile BuildLocation.

  • SelectedBuild restituisce un oggetto IBuildDetail alla variabile SelectedBuildDetail contenente i dati di compilazione nel server di compilazione.

Attività Calcola percorso compilazione necessario

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.

Attività Se l'utente ha selezionato l'ambiente archiviato

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à:

  • LabEnvironmentName viene impostata sul valore della proprietà EnvironmentDetails.LabEnvironmentName dell'argomento LabWorkflowParameters.

  • ProjectName viene impostata sul valore della proprietà TeamProject della variabile BuildDetail.

  • Result restituisce l'URI dell'ambiente lab alla variabile LabEnvironmentUri.

  • TeamProjectLabLocationName viene impostata sul valore della proprietà EnvironmentDetails.HostGroupName dell'argomento LabWorkflowParameters.

  • TfsServerUrl viene impostata su null.

Attività Ripristina snapshot

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.

Attività Ripristina snapshot

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à:

  • LabEnvironmentUri viene impostata sul valore della variabile LabEnvironmentUri.

  • Result restituisce l'ID dello snapshot alla variabile SnapshotId.

  • SnapshotName viene impostata sulla proprietà EnvironmentDetails.SnapshotName dell'argomento LabWorkflowParameters.

Ripristina ambiente lab su snapshot

Ripristina ambiente lab su snapshot è un'attività RestoreLabEnvironment. Con il modello vengono impostate le seguenti proprietà:

  • LabEnvironmentUri viene impostata sul valore della variabile LabEnvironmentUri.

  • SnapshotId viene impostata sul valore della variabile SnapshotId.

Attività Distribuzione necessaria

Se distribuzione necessaria determina se l'utente ha richiesto una distribuzione.

Attività Esegui 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à:

  • LabEnvironmentUri viene impostata sul valore della variabile LabEnvironmentUri.

  • MaxWaitTime viene impostata su 20 minuti.

  • RepairCapabilityBeforeWaitBegins viene impostata su false.

Attività di esecuzione dello script di distribuzione

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.

Attività Esegui script su sistema lab

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:

  • BuildLocation viene impostata sul valore della variabile BuildLocation.

  • DeploymentScriptDetails viene impostata sul valore della stringa iterata DeploymentDetails.Scripts.

  • LabEnvironmentUri viene impostata sul valore della variabile LabEnvironmentUri.

  • Result restituisce lo script espanso alla variabile scriptDetails.

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à:

  • MaxExecutionTime viene impostata su infinito.

  • MaxWaitTime viene impostata su 5 minuti.

  • ReservationSpec viene impostata sull'oggetto Microsoft.TeamFoundation.Build.Client.BuildAgentSpec che è la proprietà AgentSpec della variabile scriptDetails.

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:

  • ScriptDetails viene impostata sul valore della variabile scriptDetails.

  • ThrowOnError viene impostata su true.

  • SharedLocationForNetUse viene impostata sul valore della variabile BuildLocation.

Distribuzione dell'applicazione riuscita

Distribuzione dell'applicazione riuscita scrive informazioni nel riepilogo della compilazione. Distribuzione dell'applicazione riuscita è un'attività WriteDeploymentInformation.

Snapshot post-distribuzione

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.

Attività di creazione di uno snapshot post-distribuzione

Sequenza di Crea snapshot post-distribuzione

Crea snapshot post-distribuzione dichiara le seguenti variabili:

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String Con il modello viene impostato il valore predefinito sul valore della proprietà BuildNumber della variabile BuildDetails.

Attività Controlla nome snapshot

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à:

  • LabEnvironmentUri viene impostata sul valore della variabile LabEnvironmentUri.

  • SnapshotChainId restituisce l'ID dello snapshot alla variabile PostDeploymentSnapshotChainId.

  • SnapshotName viene impostata sul valore della variabile PostDeploymentSnapshotName.

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

Attività Esegui test nell'ambiente

Esegui test in ambiente determina se sono stati richiesti test automatizzati. Se la condizione viene soddisfatta, la sequenza Esegui test viene eseguita.

Attività Esegui test

Eseguire test

Esegui test dichiara le seguenti variabili:

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

  • TestResults: Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics. Con il modello viene impostato il valore predefinito su un nuovo oggetto TestRunStatistics.

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à:

  • LabEnvironmentUri viene impostata sul valore della variabile LabEnvironmentUri.

  • MaxWaitTime viene impostata su 20 minuti.

  • RepairCapabilityBeforeWaitBegins viene impostata su false.

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:

  • MaxWaitTime viene impostata su infinito.

  • BuildNumber viene impostata sul valore della variabile BuildNumber.

  • TestDirectory viene impostata sul valore della variabile BuildLocation.

  • LabEnvironmentUri viene impostata sul valore della variabile LabEnvironmentUri.

  • TestParameters viene impostata sull'oggetto TestParameters contenuto nell'oggetto LabWorkflowParameters.

  • Result restituisce un oggetto Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails contenente i risultati dei test alla variabile TestResults.

  • Title imposta il nome dell'esecuzione di test sul valore della proprietà BuildNumber della variabile BuildDetail.

Attività se tutti i test non sono stati superati

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.

Vedere anche

Concetti

Attività del flusso di lavoro di Lab Management