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 teame 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 compilazione per supportare l'integrazione continuata, vedere Definire un processo di compilazione per supportare l'integrazione continuata e 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 compilare assieme più archiviazioni a intervalli regolari
Se si definisce una compilazione con il trigger Compilazioni in corso, il sistema di compilazione accoda una compilazione di ogni archiviazione finché la compilazione non è in esecuzione.Se la compilazione è in esecuzione, il sistema attende finché la compilazione non è completata e poi accoda un'altra compilazione di tutte le archiviazioni che non sono ancora state compilate.È possibile limitare la frequenza delle compilazioni selezionando la casella di controllo Frequenza di compilazione non superiore an minuti e digitando un numero intero compreso tra 0 e 2147483647.
Ad esempio, è possibile avere un solo agente di compilazione, e potrebbe completare la compilazione ogni 20 minuti.Se si utilizza il trigger Integrazione continua e il team archivia il codice nove volte tra le 10 A.M. e le 11 A.M., l'ultima archiviazione potrebbe non essere compilata fino all'1 P.M. Tuttavia, se si utilizza il trigger Compilazioni in corso e si specifica 60 minuti come intervallo, lo stesso insieme di archiviazioni potrebbe essere compilato dalle 11:20 A.M.
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 Archiviazione gestita, le modifiche che un membro del team invia al sistema di controllo della versione vengono inserite in uno shelveset e messe in coda per 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 un processo di 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.
Suggerimento |
---|
Se si sviluppa un modello di processo di compilazione personalizzato e si seleziona Schedule come valore della proprietà Motivo di una sezione 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.
Suggerimento |
---|
Se si sviluppa un modello di processo di compilazione personalizzato e si seleziona ScheduleForced come valore della proprietà Motivo di una sezione 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 uno shelveset, è 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.
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 Team Foundation Build Activities: InvokeForReason.