Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
I criteri di conservazione controllano la durata delle esecuzioni della pipeline, delle versioni classiche e dei dati di test in Azure DevOps. Queste impostazioni consentono di bilanciare l'utilizzo, la conformità e la tracciabilità dell'archiviazione definendo quando eliminare i dati meno recenti e quali dati conservare più a lungo. Questo articolo illustra le opzioni di conservazione disponibili e come si applicano a pipeline, release e ai test.
Prerequisiti
| Product | Requisiti |
|---|---|
| Azure DevOps | - Organizzazione Azure DevOps. - Un progetto Azure DevOps. |
| Autorizzazioni | - Per impostazione predefinita, è possibile gestire i criteri di conservazione se si è membri nei gruppi Collaboratori, Build Admins, Project Admins o Release Admins. - Per gestire i criteri di conservazione, è necessaria una delle sottoscrizioni seguenti: Enterprise, Test Professional o MSDN Platforms. - È anche possibile acquistare l'accesso Azure Test Plans mensile e assegnare il livello di accesso Basic + Test Plans. Per altre informazioni, vedere Test dell'accesso in base al ruolo utente. |
Importante
Azure Pipelines non supporta più i criteri di conservazione per le pipeline. È consigliabile usare regole di conservazione a livello di progetto.
Configurare i criteri di conservazione
Per aprire le pagine delle impostazioni di conservazione nel progetto e scegliere l'area dei criteri che si vuole gestire, seguire questa procedura:
Accedere al progetto di Azure DevOps.
Selezionare l'icona
>Impostazioni del progetto.Seleziona una delle opzioni seguenti.
- In Pipeline selezionare Impostazioni per configurare la conservazione per esecuzioni, artefatti, simboli, allegati e esecuzioni di richieste pull.
- In Pipeline selezionare Conservazione versioni per configurare le impostazioni di conservazione delle versioni, inclusi i casi in cui le versioni vengono eliminate o eliminate definitivamente.
- In Test selezionare Conservazione per configurare per quanto tempo vengono mantenute le esecuzioni manuali e automatizzate dei test.
Criteri di conservazione delle esecuzioni delle pipeline
Nella maggior parte dei casi, non è necessario mantenere le esecuzioni completate indefinitamente. I criteri di conservazione consentono di definire la durata delle esecuzioni e i dati correlati prima dell'eliminazione.
Vai all'
> scheda Impostazioni delle impostazioni del tuo progetto.Nella sezione Pipeline selezionare Impostazioni:
- Impostare il numero di giorni per mantenere artefatti, simboli e allegati.
- Impostare il numero di giorni per mantenere le esecuzioni.
- Impostare il numero di giorni per mantenere le esecuzioni delle richieste pull.
- Impostare il numero di esecuzioni recenti da mantenere per ogni pipeline.
Avviso
Azure DevOps non supporta più le regole di conservazione per pipeline. L'unico modo per configurare i criteri di conservazione per le pipeline YAML e classiche è tramite le impostazioni del progetto descritte in precedenza. Non è più possibile configurare i criteri di conservazione per pipeline.
Il numero di esecuzioni recenti da mantenere per ogni impostazione della pipeline viene interpretato in modo diverso in base al tipo di repository:
Azure Repos: Azure Pipelines mantiene il numero configurato di esecuzioni più recenti per il ramo predefinito di pipeline e per ogni ramo protetto nel repository. Un ramo protetto è qualsiasi ramo con criteri di ramo configurati.
Si consideri ad esempio un repository con due rami:
mainerelease. Se il ramo predefinito della pipeline èmainereleaseha un criterio ramo,releaseviene considerato come un ramo protetto. Se si configura la conservazione per mantenere tre esecuzioni, Azure Pipelines mantiene le tre esecuzioni più recenti permain, le tre esecuzioni più recenti perreleasee le tre esecuzioni più recenti per la pipeline complessivamente (indipendentemente dal ramo).Nell'esempio seguente si presuppone che l'esecuzione più recente sia riportata per prima. Mostra quali esecuzioni vengono mantenute quando si configura la conservazione per mantenere le tre esecuzioni più recenti (ignorando l'impostazione basata sui giorni).
Correre # Filiale Conservato/Non conservato Perché? Correre 10 principale Mantenuto Ultime 3 per main e 3 più recenti per la pipeline Versione 9 Filiale1 Mantenuto Ultimi 3 per la pipeline Esecuzione 8 Filiale2 Mantenuto Ultimi 3 per la pipeline Serie 7 principale Mantenuto Ultime 3 per principale Esecuzione 6 principale Mantenuto Ultime 3 per principale Esecuzione 5 principale Non conservato Non le ultime 3 per il ramo principale o per la pipeline Eseguire 4 principale Non conservato Non la versione più recente 3 per main o per la pipeline "Run 3" Filiale1 Non conservato Non la versione più recente 3 per main o per la pipeline Esecuzione 2 rilascio Mantenuto Ultimi 3 per il rilascio Esecuzione 1 principale Non conservato Non la versione più recente 3 per main o per la pipeline Il numero di giorni da conservare viene calcolato a partire dalla data in cui l'esecuzione è completata. Ad esempio, ci sono due esecuzioni nel ramo principale il 19 gennaio. L'esecuzione completata in un secondo momento viene mantenuta.
Tutti gli altri repository Git: Azure Pipelines mantiene il numero configurato di esecuzioni più recenti per l'intera pipeline.
Team Foundation Version Control (TFVC): Azure Pipelines mantiene il numero configurato di esecuzioni più recenti per l'intera pipeline, indipendentemente dal ramo.
Quali parti della corsa vengono eliminate
Quando un'esecuzione viene eliminata, vengono rimossi i dati seguenti:
- Registri di sistema
- Tutti gli artefatti della pipeline e del build
- Tutti i simboli
- Binari
- Risultati del test
- Eseguire l'elaborazione dei metadati
- Etichette di origine (TFVC) o tag (Git)
La conservazione delle esecuzioni della pipeline non regola pacchetti universali, NuGet, npm e altri pacchetti.
Quando vengono eliminate le esecuzioni
Un'esecuzione viene eliminata se sono soddisfatte tutte le condizioni seguenti:
- Supera il numero di giorni configurati nelle impostazioni di conservazione.
- Non è una delle esecuzioni recenti configurate nelle impostazioni di conservazione.
- Non è contrassegnato per la conservazione indefinita.
- Non viene mantenuta da un rilascio.
I criteri di conservazione vengono elaborati una volta al giorno. Il tempo di elaborazione varia perché il lavoro viene distribuito durante il giorno per il bilanciamento del carico. Non è possibile modificare questa pianificazione.
Impostare automaticamente il periodo di conservazione nei run della pipeline
I lease di conservazione consentono di estendere o controllare la durata delle esecuzioni della pipeline oltre i periodi di conservazione configurati. È possibile aggiungere o eliminare lease per un'esecuzione della pipeline usando l'API lease. È possibile chiamare questa API dall'interno di una pipeline usando uno script e variabili predefinite per runId e definitionId.
È possibile impostare un lease per una durata specifica. Ad esempio, è possibile conservare un'esecuzione che viene distribuita in un ambiente di test per un periodo più breve. È possibile conservare un'esecuzione che viene distribuita nell'ambiente di produzione per un periodo di tempo più lungo.
Impostare manualmente l'impegno di conservazione delle esecuzioni della pipeline
È possibile mantenere manualmente un'esecuzione della pipeline dal menu Altre azioni nella pagina Dettagli esecuzione pipeline .
Eliminare una corsa
È possibile eliminare le esecuzioni dal menu Altre azioni nella pagina Dettagli dell'esecuzione della pipeline.
Nota
Se all'esecuzione si applicano criteri di conservazione, è necessario rimuoverli prima di poter eliminare l'esecuzione. Per istruzioni, vedere Dettagli dell'esecuzione della pipeline: Eliminazione di un'esecuzione.
Rilascia i criteri di conservazione
I criteri di mantenimento per le pipeline di rilascio classico determinano per quanto tempo una versione e la relativa esecuzione vengono mantenute. Con questi criteri, è possibile configurare entrambi:
- Numero di giorni per conservare ogni versione dopo l'ultima modifica o distribuzione.
- Numero minimo di rilasci da conservare per ogni pipeline.
Il timer di conservazione si reimposta ogni volta che una release viene modificata o distribuita in una fase del processo. L'impostazione dei rilasci minimi ha la precedenza rispetto all'impostazione basata su giorni. Ad esempio, se si imposta il minimo su tre versioni, le tre versioni più recenti vengono mantenute indipendentemente dal numero di giorni configurati. È comunque possibile eliminare queste versioni manualmente quando non sono più necessarie. Per altre informazioni, vedere le domande frequenti più avanti in questo articolo.
Le pipeline YAML e di build usano gli stessi criteri di conservazione delle esecuzioni. È possibile visualizzare queste impostazioni in impostazioni Project>Pipelines>Settings.
Politica di conservazione dei rilasci globali
In Azure DevOps Services è possibile visualizzare queste impostazioni, ma non è possibile modificarle a livello di progetto.
È possibile esaminare le impostazioni di conservazione delle versioni globali dalla pagina Release retention nelle Impostazioni di progetto:
- Criterio di conservazione massimo: definisce il limite massimo per quanto tempo è possibile conservare le versioni in tutte le pipeline di versione. Gli autori della pipeline non possono configurare la conservazione oltre questo limite.
- Criterio di conservazione predefinito: definisce i valori di conservazione predefiniti applicati alle pipeline di rilascio. Gli autori della pipeline possono eseguire l'override di queste impostazioni predefinite.
- Elimina definitivamente le versioni: controlla per quanto tempo le versioni eliminate vengono mantenute prima della rimozione permanente. Le singole pipeline di versione non possono eseguire l'override di questo criterio.
Politica di conservazione dei rilasci globali
Se si usa Azure DevOps Server locale, è possibile configurare le impostazioni predefinite a livello di progetto e i valori massimi per la conservazione delle versioni. È anche possibile impostare quando le versioni eliminate vengono eliminate definitivamente. (Vengono rimossi dalla scheda Eliminata in Build Explorer).
- Criterio di conservazione massimo: definisce il limite massimo per quanto tempo è possibile conservare le versioni in tutte le pipeline di versione. Gli autori della pipeline non possono configurare la conservazione oltre questo limite.
- Criterio di conservazione predefinito: definisce i valori di conservazione predefiniti applicati alle pipeline di rilascio. Gli autori della pipeline possono eseguire l'override di queste impostazioni predefinite.
- Elimina definitivamente le versioni: controlla per quanto tempo le versioni eliminate vengono mantenute prima della rimozione permanente. Le singole pipeline di versione non possono eseguire l'override di questo criterio.
Impostare criteri di conservazione a livello di raccolta
Se si usa un server locale, è anche possibile configurare la conservazione a livello di raccolta con regole personalizzate. Queste impostazioni si applicano alle pipeline di compilazione classiche e definiscono i valori di conservazione predefiniti e massimi per la raccolta.
Usare l'attività Copia file per salvare i dati più a lungo
Qualora sia necessario mantenere l'output di compilazione per un periodo superiore a quello configurato, copiarlo nella propria posizione di archiviazione utilizzando l'attività Copia file.
Usare Copia file anziché Pubblicare artefatti di compilazione, perché i dati pubblicati come artefatti di compilazione sono ancora soggetti alla pulizia della conservazione.
Domande frequenti
Se si contrassegna un'esecuzione o una versione da conservare per un periodo illimitato, i criteri di conservazione vengono ancora applicati?
No. I criteri di conservazione della pipeline e i limiti massimi impostati dall'amministratore non vengono applicati quando si contrassegna un'esecuzione o una versione singola da conservare per un periodo illimitato. Rimane fino a quando non si smette di conservarlo indefinito.
Come si specifica che le esecuzioni distribuite nell'ambiente di produzione devono essere mantenute più a lungo?
Se si utilizzano le versioni classiche per la distribuzione nell'ambiente di produzione, personalizzare i criteri di conservazione nella pipeline di rilascio. Impostare il numero di giorni di conservazione delle versioni distribuite nell'ambiente di produzione e specificare che le esecuzioni associate a tali versioni vengono mantenute. Questa impostazione esegue l'override dei criteri di conservazione delle esecuzioni.
Se si usano pipeline YAML a più fasi, è possibile configurare la conservazione solo nelle impostazioni del progetto. Non è possibile configurare la conservazione in base all'ambiente di distribuzione.
Non ho contrassegnato le esecuzioni da conservare a tempo indeterminato, ma molte esecuzioni vengono mantenute. Come è possibile evitare questo comportamento?
Questo comportamento può verificarsi a causa di uno dei motivi seguenti:
- Un utente del progetto ha contrassegnato le esecuzioni per un'archiviazione indefinita.
- Un rilascio consuma le esecuzioni, e il rilascio detiene un blocco di conservazione su queste esecuzioni. Personalizzare i criteri di conservazione delle versioni come illustrato in precedenza.
Se le esecuzioni non sono più necessarie o se i rilasci che le richiedevano sono già stati eliminati, è possibile eliminare manualmente le esecuzioni.
Come funziona l'impostazione per mantenere le versioni minime?
Il valore Minimo delle versioni da mantenere è definito a livello di fase. Azure DevOps mantiene sempre il numero di versioni distribuite più di recente per la fase, anche se non rientrano nel periodo di conservazione. Una versione viene conteggiata per questo valore minimo solo quando inizia la distribuzione in tale fase. Vengono conteggiate le distribuzioni riuscite e non riuscite. Le versioni in attesa di approvazione non vengono conteggiate.
Come viene deciso il periodo di conservazione quando la versione viene distribuita in più fasi con periodi di conservazione diversi?
Il periodo di conservazione finale è determinato dai giorni per conservare le impostazioni in tutte le fasi in cui viene distribuita la versione, usando il valore massimo tra tali fasi. Le versioni minime da mantenere sono specifiche della fase e non cambiano in base al fatto che una versione sia stata distribuita in una o più fasi. Mantenere gli artefatti associati si applica solo quando una versione viene distribuita in una fase in cui tale opzione è abilitata.
Ho eliminato una fase per cui ho alcune versioni precedenti. Quale retention viene presa in considerazione per questo caso?
Dopo l'eliminazione di una fase, le impostazioni di conservazione a livello di fase non vengono più applicate. In tal caso, Azure DevOps usa le impostazioni di conservazione predefinite a livello di progetto.
L'organizzazione richiede di conservare le build e le versioni più a lungo di quelle consentite nelle impostazioni. Come è possibile richiedere un periodo di conservazione più lungo?
Per mantenere un'esecuzione o una versione più lunga dei limiti di conservazione configurati, contrassegnarla per essere mantenuta per un periodo illimitato. Non è disponibile alcuna impostazione per configurare manualmente un periodo di conservazione più lungo. Per assistenza, contattare Azure DevOps supporto.
È anche possibile usare le API REST per scaricare le informazioni di esecuzione e gli artefatti e quindi archiviarli nel proprio account di archiviazione o nel repository degli artefatti.
Ho perso qualche corsa. È possibile recuperarle?
Se pensi che le esecuzioni siano andate perse a causa di un bug del servizio, crea immediatamente un ticket di supporto. Se una definizione di compilazione è stata eliminata manualmente più di una settimana prima, non è possibile recuperarla. Se le esecuzioni sono state eliminate come previsto dai criteri di conservazione, non è possibile recuperarle.
Come si usa la funzionalità Build.Cleanup degli agenti?
Impostando la Build.Cleanup capacità sugli agenti, i processi di pulizia vengono indirizzati solo a quegli agenti, mantenendo così gli altri agenti disponibili per il normale lavoro della pipeline. Quando viene eliminata un'esecuzione di una pipeline, gli artefatti archiviati al di fuori di Azure DevOps vengono ripuliti tramite un job dell'agente. Se i processi di pulizia saturano il pool, designare un sottoinsieme di agenti come agenti di pulizia. Quando un qualsiasi agente ha impostato Build.Cleanup, solo quegli agenti eseguono processi di pulizia. Per abilitare questa impostazione, passare a Agente>Funzionalità e impostare Build.Cleanup su 1.
Cosa accade ai file condivisi quando la compilazione viene cancellata?
Quando viene eliminata una compilazione con artefatti di condivisione dei file, una nuova attività di compilazione viene accodata in un agente di compilazione per rimuovere tali file. Viene selezionato un agente per eseguire questa attività in base ai criteri seguenti:
- È disponibile un agente con capacità
Build.Cleanup? - L'agente che ha eseguito la compilazione è disponibile?
- È disponibile un agente dello stesso pool?
- È disponibile un agente da un pool simile?
- È disponibile un agente?
I risultati dei test automatizzati pubblicati come parte di una versione vengono mantenuti fino all'eliminazione della versione?
I risultati dei test pubblicati in una fase di rilascio vengono conservati in base ai criteri di conservazione dei test, non ai criteri di conservazione delle versioni. Se sono necessari risultati di test mantenuti fino alla versione, impostare la conservazione automatica dell'esecuzione dei test nelle impostazioni Project su Never delete. Questa impostazione garantisce che i risultati dei test vengano eliminati solo quando la versione viene eliminata.
I risultati dei test manuali vengono eliminati?
No. I risultati dei test manuali non vengono eliminati.
Come mantenere le etichette o i tag del controllo della versione?
Se le etichette o i tag devono essere mantenuti dopo l'eliminazione di un build, applicarli in un'attività della pipeline, aggiungerli manualmente all'esterno della pipeline o conservare il build per un periodo illimitato.
Importante
Le etichette o i tag di controllo della versione applicati durante una pipeline di compilazione che non vengono creati automaticamente dall'attività Origini vengono mantenuti, anche se la compilazione viene eliminata. Le etichette o i tag creati automaticamente dall'attività Origini durante una compilazione vengono considerati artefatti di compilazione e vengono eliminati con la compilazione.
Cosa accade alle pipeline consumate in altre pipeline?
Le versioni classiche mantengono le pipeline utilizzate automaticamente.
Cosa accade alle pipeline consumate in altre pipeline?
Le versioni classiche mantengono le pipeline utilizzate automaticamente. Se si usa YAML, è anche possibile creare una pipeline YAML a più fasi per rappresentare il rilascio e usare un'altra pipeline YAML come risorsa. La pipeline di risorse è mantenuta automaticamente finché è mantenuta la pipeline di rilascio.