Definire un processo di compilazione di archiviazione gestita per convalidare le modifiche

L'archiviazione da parte di uno sviluppatore di modifiche che interrompono la compilazione può comportare difficoltà significative per i piccoli teamPer i grandi team il costo può anche essere più elevato quando misurato in termini di perdita di produttività e ritardi di pianificazione.È possibile preservare l'intera codebase o parte di essa da questi problemi creando una definizione di compilazione di archiviazione gestita.

In questo argomento

  • Effetti delle compilazioni di archiviazione gestita sul team

  • Definire un processo di compilazione di archiviazione gestita

  • Linee guida per migliorare le prestazioni e il processo di compilazione

  • Evitare di bloccare il team

  • Esecuzione manuale di compilazioni di archiviazione gestita e compilazioni private

Effetti delle compilazioni di archiviazione gestita sul team

Quando il team stabilisce un processo di compilazione di archiviazione gestita, le modifiche che gli sviluppatori inviano vengono inserite negli shelveset e vengono automaticamente compilate ed eventualmente testate dal sistema di compilazione.

Finestra di dialogo Archiviazione gestita

Affinché il processo di archiviazione venga completato, è necessario che anche la compilazione sia completata correttamente.Per ulteriori informazioni, vedere Archiviare modifiche in sospeso controllate da una compilazione di archiviazione gestita.

Se alcuni degli utenti hanno l'esigenza di ignorare l'archiviazione gestita, è possibile impostare l'autorizzazione Override della convalida di archiviazione tramite compilazione su Consenti per un gruppo di utenti.Per ulteriori informazioni, vedere la classe Autorizzazioni per Team Foundation Server.

Definire un processo di compilazione di archiviazione gestita

Autorizzazioni necessarie

Per eseguire questa procedura, è necessario che l'autorizzazione di Modifica definizione di compilazione sia impostata su Consenti.Per ulteriori informazioni, vedere la classe Autorizzazioni per Team Foundation Server.

Per definire una compilazione di archiviazione gestita

  1. In Team Explorer:

    1. Se non si è già connessi al progetto team sul quale si vuole lavorare, allora connettersi al progetto team.

    2. Seleziona Icona HomeHome, quindi seleziona Icona CompilazioniCompilazione.

    3. Nella pagina Compilazioni, scegliere Nuova definizione di compilazione.

    Verrà visualizzata la finestra Nuova definizione di compilazione.

  2. Nella scheda Trigger :

    • Scegliere Archiviazione gestita.

    • (Facoltativo) Per aumentare l'efficienza del processo di compilazione, selezionare Unire e compilare fino a n richieste Per ulteriori informazioni, vedere Evitare di bloccare il team.

  3. Nella scheda Area di lavoro, nella tabella Cartelle di lavoro, collegare le cartelle di controllo di versione, che verranno controllate dalla definizione di compilazione, alle cartelle locali dell'agente di compilazione.

    SuggerimentoSuggerimento

    Attenersi alle seguenti indicazioni:

    • Per assicurarsi che il processo di compilazione funzioni correttamente e per migliorare le prestazioni, includere tutte e solo le cartelle che contengono i file richiesti dal processo di compilazione.

    • Assicurarsi di non specificare alcuna cartella di controllo di versione che sia già specificata nella scheda Area di lavoro di un'altra definizione di compilazione di archiviazione gestita.In caso contrario, quando si archiviano file in queste cartelle, il sistema impone di decidere quale definizione di compilazione accodare.

    • Per ulteriori informazioni su come specificare questi file, vedere Utilizzare aree di lavoro di compilazione.

  4. Nella scheda Impostazioni predefinite di compilazione, per migliorare le prestazioni, scegliere Questa compilazione non copia i file di output in una cartella di ricezione.

  5. Nella sezione Processo, in Modello di processo di compilazione, viene selezionato in modo predefinito il Modello Predefinito.Nel parametro Elementi da compilare, specificare le soluzioni o il codice dei progetti da compilare.

  6. Nella sezione Processo, impostare i parametri in modo da garantire che le archiviazioni rispettano gli standard specifici di qualità del codice del team senza ritardare inutilmente il lavoro degli sviluppatori.

    Per informazioni aggiuntive, vedere in seguito Guida per migliorare le performance e il processo di compilazione.

  7. Specificare le opzioni del processo di compilazione in altre sezioni.Per ulteriori informazioni, vedere Creare una definizione di compilazione.

Linee guida per migliorare le prestazioni e il processo di compilazione

Per ridurre i tempi necessari per elaborare la compilazione, può essere utile attenersi a queste linee guida per specificare i valori per i parametri del processo di compilazione nella scheda Processo.

Nodo obbligatorio

  • Elementi da compilare, Configurazioni da compilare: se questo parametro viene lasciato vuoto, verranno utilizzate la configurazione e la piattaforma predefinite per ogni soluzione e progetto.Per ottimizzare le prestazioni, attenersi alle linee guida riportate di seguito.

    • Se una coppia piattaforma-configurazione viene compilata più rapidamente di altre coppie, specificarla in questo parametro.

    • Specificare il numero più basso possibile di coppie piattaforma-configurazione.

Nodo di base

  • Pulire l'area di lavoro: Per ottenere prestazioni più veloci, impostare questo valore su Nessuno (consigliato) o su Uscite.Tuttavia, è molto probabile che al team possano sfuggire alcuni tipi di errori, come quelli introdotti durante il refactoring, se l'area di lavoro non è stata pulita.Per ulteriori informazioni, vedere Definire un processo di compilazione basato sul modello predefinito.

  • Eseguire l'analisi del codice: Per ottenere prestazioni migliori, impostare questo valore su Mai.

  • Impostazioni server di simboli e origine, Indicizza origini: Per ottenere prestazioni migliori, impostare questo valore su False.

Nodo avanzato

  • Impostazioni agente

    • Filtro nomi o Filtro tag: utilizzare il nome di un agente di compilazione o un tag per associare questa definizione di compilazione a un agente di compilazione appositamente progettato per l'esecuzione di questa compilazione.L'agente di compilazione dovrebbe essere eseguito su un hardware sufficientemente potente, che sia in grado di elaborare questa compilazione in maniera sufficientemente rapida da soddisfare le aspettative di prestazione del team.

      Ad esempio, è possibile che agli sviluppatori del team non importi di dover attendere 15 minuti per il completamento della compilazione.Ma non è desiderabile dover attendere otto ore prima di poter verificare se il codice è stato verificato correttamente.

    • Tempo massimo di esecuzione: Impostare questo valore su un numero ragionevolmente piccolo.Ad esempio, un valore di 15 minuti può essere accettabile per il team, mentre un valore di otto ore è probabilmente troppo.

  • Crea un elemento di lavoro in caso di errore: il sistema accetta questo valore come False, anche se viene impostato su True.

  • Disabilita Test:

    • Per ottenere prestazioni migliori, selezionare True.

    • Se il codice invece deve superare determinati test, selezionare Falso e quindi definire un set di test da eseguire nella compilazione.È possibile migliorare le prestazioni eseguendo solo i test necessari.Per designare questi test, è necessario filtrarli per categoria o priorità.Per ulteriori informazioni, vedere Eseguire test nel processo di compilazione.

  • Origini etichette: impostare questo valore su False.

Per ulteriori informazioni su come personalizzare un modello di processo di compilazione, vedere Definire un processo di compilazione basato sul modello predefinito.

Evitare di bloccare il team

Per ogni definizione di compilazione di archiviazione gestita può essere eseguita una sola compilazione per volta.Per questo motivo, è probabile che i grandi team impegnati in diverse attività sviluppino una coda di grandi dimensioni di compilazioni di archiviazione gestita.Le procedure consigliate riportate di seguito sono utili per evitare di bloccare le attività del team:

  • Per aumentare l'efficienza del processo di compilazione nella sezione Trigger, selezionare l'opzione Unire e compilare fino ad n richieste e specificare il numero massimo delle archiviazioni che si desidera compilare in un qualsiasi batch specificato.In generale non si rischia di causare troppe interruzioni attivando questa opzione.Per ogni singola archiviazione viene eseguito il commit o il rifiuto.

    Ad esempio, se tre archiviazioni vengono compilate insieme in un batch e la compilazione non riesce, il sistema accoda le singole compilazioni di tutte e tre le archiviazioni.

    Tuttavia, questa opzione presenta alcuni rischi quando l'archiviazione di una interferisce con altre.Questo può accadere, ad esempio, se archiviazioni multiple modificano lo stesso file e si verifica un conflitto nel controllo di versione.In questo caso, viene eseguito il commit della prima archiviazione mentre le successive vengono rifiutate.

  • Definire la compilazione in modo che l'agente di compilazione si occupi esclusivamente delle operazioni necessarie per convalidare la qualità del codice da archiviare.Per ulteriori informazioni, vedere Linee guida per le impostazioni della scheda Processo più indietro in questo argomento.

  • Destinare un computer di compilazione con hardware potente, ad esempio con un processore e un disco rigido veloci, all'agente di compilazione utilizzato dalla definizione di compilazione di archiviazione gestita.

Esecuzione manuale di compilazioni di archiviazione gestita e compilazioni private

Per una maggiore sicurezza sulle modifiche da archiviare, gli sviluppatori possono accodare manualmente una compilazione di uno shelveset.In questo caso, possono scegliere tra due opzioni relative all'operazione eseguita successivamente dal sistema in caso di esito positivo della compilazione:

  • Il sistema archivia le modifiche (compilazione di archiviazione gestita manuale): Questa opzione è utile per i team che non desiderano richiedere l'archiviazione gestita e che vogliono comunque consentire agli sviluppatori di convalidare volontariamente il codice prima dell'archiviazione.

  • Il sistema non archivia le modifiche (compilazione privata): gli sviluppatori possono utilizzare questa opzione per convalidare alcune modifiche in uno shelveset, senza archiviarle.

Per ulteriori informazioni, vedere Accodare una compilazione.