Condividi tramite


Specificare trigger e motivi di compilazione

È possibile accodare manualmente una compilazione ogni qualvolta è necessario, ma nella maggior parte dei casi le esigenze del team saranno soddisfatte in modo ottimale da processi di compilazione definiti con trigger automatici. Quando viene attivata una compilazione, un motivo specifico viene registrato nella proprietà Reason. In questo argomento viene descritto e illustrato come utilizzare tutti i trigger e i motivi di compilazione disponibili quando si sviluppa il processo di compilazione.

  • Utilizzare i trigger di compilazione per raggiungere gli obiettivi del team

    • Proteggere il team da interruzioni di compilazione

    • Mantenere la qualità tramite l'integrazione continuata

    • Controllare la qualità del prodotto mediante l'esecuzione di test di verifica della compilazione notturni

  • Utilizzare trigger di compilazione automatica

    • Utilizzare il trigger Integrazione continuata per accodare una compilazione quando viene archiviata una modifica

    • Utilizzare il trigger Compilazioni in corso per accodare una compilazione quando una modifica viene archiviata con limiti relativi alla frequenza di esecuzione della compilazione

    • Utilizzare il trigger Archiviazione gestita per accodare una compilazione quando un membro del team tenta di archiviare una modifica e blocca la modifica se la compilazione non funziona

    • Utilizzare il trigger Pianifica per accodare una compilazione a intervalli regolari

  • Accodare manualmente una compilazione

    • Accodare una compilazione

    • Accodare una compilazione privata

  • Utilizzare codice personalizzato per accodare una compilazione

  • Utilizzare trigger e motivi di compilazione

Utilizzare i trigger di compilazione per raggiungere gli obiettivi del team

Proteggere il team da interruzioni di compilazione

L'archiviazione da parte di uno sviluppatore di modifiche che interrompono la compilazione può comportare difficoltà significative per i piccoli team e causare costi notevoli ai team più grandi in termini di perdita di produttività e ritardi di pianificazione. È possibile utilizzare il trigger Archiviazione gestita per preservare l'intera codebase o parte di essa da questo problema.

Mantenere la qualità tramite l'integrazione continuata

Per integrazione continuata si intende il processo di integrazione del codice, eseguito il più spesso possibile, in un repository condiviso. Durante l'integrazione del codice, un'interruzione di compilazione o un errore del test può notificare tempestivamente un errore nel codice. È possibile utilizzare il trigger Integrazione continuata per implementare tale processo. Il trigger Compilazione in corso è simile al trigger Integrazione continuata e può essere utile se non si dispone di un sistema di compilazione sufficientemente potente per eseguire una compilazione ogni volta che si verifica un'archiviazione.

Il trigger Archiviazione gestita può essere utile come un approccio ancora più rigoroso all'integrazione continuata. Il trigger Integrazione continuata avvisa il team in caso di problemi, ad esempio interruzioni di compilazione o unit test principali non completati, tuttavia il trigger Archiviazione gestita blocca questi tipi di problemi evitando di introdurli nella codebase.

Per ulteriori informazioni sull'utilizzo del sistema di computazione per supportare l'integrazione continuata, vedere Compilazione e distribuzione continue.

Controllare la qualità del prodotto mediante l'esecuzione di test di verifica della compilazione notturni

È possibile pianificare esecuzioni di test normali per valutare la qualità della compilazione. Questi test sono spesso chiamati test di verifica della compilazione o smoke test. Questi test sono in genere costituiti da un ampio gruppo di test utilizzati per verificare aree chiave di un'applicazione in una compilazione specifica. È possibile utilizzare il trigger Pianifica per implementare un'esecuzione del test di verifica della compilazione notturna.

Per informazioni sul trigger Pianifica, vedere Utilizzare il trigger Pianifica per accodare una compilazione a intervalli regolari. Per ulteriori informazioni sull'impostazione di un processo di test di verifica della compilazione, vedere Procedura: configurare ed eseguire test pianificati dopo avere compilato l'applicazione.

Utilizzare trigger di compilazione automatica

È necessario specificare un trigger di compilazione per la definizione di compilazione. Nella maggior parte dei casi, può essere necessario che il processo di compilazione venga eseguito automaticamente. È possibile selezionare uno dei trigger automatici descritti in questa sezione.

Utilizzare il trigger Integrazione continuata per accodare una compilazione quando viene archiviata una modifica

Quando si definisce una compilazione con il trigger Integrazione continuata, la compilazione viene accodata ogni volta che un membro del team archivia una modifica. La definizione di compilazione Area di lavoro determina i file che attivano la definizione di compilazione. Per ulteriori informazioni sulle aree di lavoro di compilazione, vedere Utilizzare aree di lavoro di compilazione.

Alle compilazioni attivate dal trigger Integrazione continuata viene assegnata una proprietà Reason di tipo IndividualCI.

Utilizzare il trigger Compilazioni in corso per accodare una compilazione quando una modifica viene archiviata con limiti relativi alla frequenza di esecuzione della compilazione

Quando si definisce una compilazione con il trigger Compilazioni in corso, la compilazione viene accodata quando viene archiviata una modifica a cui sono applicati i limiti seguenti:

  • Se una compilazione di questa definizione di compilazione è già in esecuzione, non verranno accodate compilazioni aggiuntive.

  • È possibile limitare ulteriormente la frequenza delle compilazioni selezionando la casella di controllo Frequenza di compilazione non superiore a n minuti e digitando un numero intero compreso tra 0 e 2147483647.

La definizione di compilazione Area di lavoro determina i file che attivano la definizione di compilazione. Per ulteriori informazioni sulle aree di lavoro di compilazione, vedere Utilizzare aree di lavoro di compilazione.

Alle compilazioni attivate dal trigger Compilazioni in corso viene assegnata una proprietà Reason di tipo BatchedCI.

Utilizzare il trigger Archiviazione gestita per accodare una compilazione quando un membro del team tenta di archiviare una modifica e di bloccare la modifica se la compilazione non funziona

Quando si definisce una compilazione con il trigger di Archiviazione gestita, le modifiche che un membro del team invia al sistema di controllo della versione vengono inserite in un'area di sospensione e accodate in attesa di essere compilate. Affinché il processo di archiviazione venga completato, è necessario che anche la compilazione sia completata correttamente. La definizione di compilazione Area di lavoro determina i file controllati dalla definizione di compilazione. Per ulteriori informazioni sulle aree di lavoro di compilazione, vedere Utilizzare aree di lavoro di compilazione.

Alle compilazioni attivate dal trigger Archiviazione gestita viene assegnata una proprietà Reason di tipo CheckInShelveset.

Per ulteriori informazioni su come implementare il trigger Archiviazione gestita, vedere Definire una compilazione di archiviazione gestita per convalidare le modifiche. Per ulteriori informazioni sull'impatto di questo tipo definizione di compilazione sull'attività del team, vedere Archiviare modifiche in sospeso controllate da una compilazione di archiviazione gestita.

Utilizzare il trigger Pianifica per accodare una compilazione a intervalli regolari

Trigger Pianifica

Quando si definisce una compilazione con il trigger Pianifica e si deseleziona la casella di controllo Compila anche se non è stato modificato nulla rispetto alla compilazione precedente, una compilazione viene accodata nei giorni e negli orari specificati se sono state archiviate modifiche dall'esecuzione più recente di questa definizione di compilazione. La compilazione viene accodata indipendentemente dall'associazione delle modifiche all'ultima compilazione valida.

Alle compilazioni attivate in questo modo viene assegnata una proprietà Reason di tipo Schedule.

SuggerimentoSuggerimento

Se si sviluppa un modello di processo di compilazione personalizzato e si seleziona Schedule come valore della proprietà Motivo di una sezione Limitare le sezioni del processo di compilazione in base al motivo (trigger) (attività InvokeForReason) del modello, nella maggior parte dei casi sarà probabilmente necessario selezionare anche ScheduleForced.

Trigger Pianifica (Motivo: ScheduleForced)

Quando si definisce una compilazione con il trigger Pianifica e si seleziona la casella di controllo Compila anche se non è stato modificato nulla rispetto alla compilazione precedente, una compilazione viene accodata nei giorni e negli orari specificati. La compilazione viene accodata indipendentemente dall'archiviazione delle modifiche.

Alle compilazioni attivate in questo modo viene assegnata una proprietà Reason di tipo ScheduleForced.

SuggerimentoSuggerimento

Se si sviluppa un modello di processo di compilazione personalizzato e si seleziona ScheduleForced come valore della proprietà Motivo di una sezione Limitare le sezioni del processo di compilazione in base al motivo (trigger) (attività InvokeForReason) del modello, nella maggior parte dei casi sarà probabilmente necessario selezionare anche Schedule.

Accodare manualmente una compilazione

In alcune situazioni è possibile che non si desideri eseguire automaticamente un processo di compilazione.

  • La definizione di compilazione potrebbe non essere pronta per le esecuzioni automatiche essendo ancora in fase di sviluppo.

  • Potrebbe essere disponibile un processo di compilazione speciale che si desidera eseguire solo manualmente.

In queste situazioni, è possibile selezionare il trigger Manuale. La definizione di compilazione verrà eseguita solo quando viene accodata manualmente da un membro del team.

Accodare una compilazione

È possibile accodare manualmente qualsiasi definizione di compilazione, anche se viene definita con un trigger di compilazione diverso da Manuale. Quando si accoda manualmente una compilazione, Reason viene impostata su Manual. Per ulteriori informazioni su come accodare manualmente una compilazione, vedere Accodare una compilazione.

Accodare una compilazione privata

Se si desidera compilare le modifiche inserite in un'area di sospensione, è possibile utilizzare una compilazione privata (denominata anche "compilazione degli utenti") per convalidare le modifiche al codice prima di eseguirne l'archiviazione. Quando si accoda manualmente una compilazione privata, Reason viene impostata su ValidateShelveset. Per ulteriori informazioni su come accodare una compilazione privata, vedere Accodare una compilazione.

Utilizzare codice personalizzato per creare una compilazione completata

È possibile sviluppare codice personalizzato per creare una compilazione completata utilizzando le classi dello spazio dei nomi Microsoft.TeamFoundation.Build. Quando una compilazione viene accodata in questo modo, la proprietà Reason viene impostata su UserCreated. Per ulteriori informazioni, vedere Extending Team Foundation: Build

Utilizzare trigger e motivi di compilazione

È possibile utilizzare i trigger e i motivi del processo di compilazione nei modi seguenti:

  • Impostare il trigger per il processo di compilazione: nella definizione di compilazione fare clic sulla scheda Trigger, quindi selezionare il trigger che meglio soddisfa le esigenze del team. Per ulteriori informazioni sulla creazione di una definizione di compilazione, vedere Creare una definizione di compilazione di base.

  • Definire i motivi di compilazione accettati da un processo di compilazione personalizzato: è possibile utilizzare l'attività InvokeForReason per racchiudere un segmento del processo di compilazione che si desidera eseguire solo nelle compilazioni eseguite per un motivo particolare. Per ulteriori informazioni, vedere Limitare le sezioni del processo di compilazione in base al motivo (trigger) (attività InvokeForReason).

Cronologia delle modifiche

Data

Cronologia

Motivo

Maggio 2011

Argomento aggiunto.

Miglioramento delle informazioni.