Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Med lagringspolicyer kan du ange hur länge körningar, versioner och tester ska lagras i systemet. Om du vill spara lagringsutrymme vill du ta bort äldre körningar, tester och versioner.
Följande kvarhållningsprinciper är tillgängliga i Azure DevOps i dina Project-inställningar:
- Pipeline – Ange hur länge artefakter, symboler, bifogade filer, körningar och pull-begäranden ska köras.
- Release (klassisk) – Ställ in om du vill spara byggen och visa standard- och maxinställningar för kvarhållning.
- Test – Ange hur länge automatiserade och manuella testkörningar, resultat och bifogade filer ska behållas.
Anteckning
Om du använder en lokal server kan du också ange standardvärden för kvarhållningsprinciper för ett projekt och när versioner förstörs permanent. Läs mer om kvarhållande av utgåvor senare i den här artikeln.
Förutsättningar
Som standard kan medlemmar i grupperna Contributors (deltagare), Build Admins (byggadministratörer), Project Admins (projektadministratörer), och Release Admins (versionsadministratörer) hantera kvarhållningsprinciper.
Om du vill hantera kvarhållningsprinciper måste du ha någon av följande prenumerationer:
Du kan också köpa månatlig åtkomst till Azure-testplaner och tilldela åtkomstnivån Basic + Test Plans. Se Testning av åtkomst efter användarroll.
Konfigurera kvarhållningsprinciper
Logga in på projektet.
Gå till
fliken Inställningar i projektets inställningar.Välj Inställningar eller Släpp kvarhållning under Pipelines eller Kvarhållning under Test.
- Välj Inställningar för att konfigurera kvarhållningsprinciper för körningar, artefakter, symboler, bifogade filer och pull-begäranden.
- Välj Versionsbevarande för att konfigurera dina kvarhållningsprinciper för versioner och konfigurera när du vill ta bort eller permanent förstöra versioner.
- Välj Kvarhållning för att konfigurera hur länge manuella och automatiserade testkörningar ska hållas.
Viktigt!
Azure Pipelines stöder inte längre principer för kvarhållning per pipeline. Vi rekommenderar att du använder kvarhållningsregler på projektnivå.
Ange kvarhållningspolicys för processer
I de flesta fall behöver du inte behålla slutförda körningar längre än ett visst antal dagar. Med hjälp av bevarandeprinciper kan du hantera hur många dagar du vill behålla varje körning innan du tar bort den.
Gå till
fliken Inställningar i projektets inställningar.Välj Inställningar i avsnittet Pipelines.
- Ange antalet dagar för att behålla artefakter, symboler och bifogade filer.
- Ställ in antal dagar som körningar ska behållas
- Ange antalet dagar för att behålla körningar av pull-begäranden
- Ange antalet senaste körningar som ska behållas för varje pipeline
Varning
Azure DevOps stöder inte längre kvarhållningsregler för varje enskild pipeline. Det enda sättet att konfigurera kvarhållningsprinciper för YAML och klassiska pipelines är genom de projektinställningar som beskrivs ovan. Du kan inte längre konfigurera kvarhållningspolicyer per pipeline.
Inställningen för antalet senaste körningar som ska behållas för varje pipeline kräver lite mer förklaring. Tolkningen av den här inställningen varierar beroende på vilken typ av lagringsplats du skapar i din pipeline.
Azure Repos: Azure Pipelines behåller det konfigurerade antalet senaste körningar för pipelinens standardgren och för varje skyddad gren av lagringsplatsen. En gren som har några konfigurerade grenprinciper anses vara en skyddad gren.
Tänk dig till exempel en lagringsplats med två grenar
mainochrelease. Anta attpipeline's default branchär grenenmainoch att grenenreleasehar en grenprincip, vilket gör den till en skyddad gren. Om du i det här fallet har konfigurerat principen för att behålla tre körningar behålls både de tre senaste körningarna avmainoch de senaste tre körningarna av grenenrelease. Dessutom behålls de tre senaste körningarna av den här pipelinen, oavsett vilken gren det gäller.För att ytterligare förtydliga den här logiken kan vi säga att listan av körningar för den här pipelinen ser ut som följer, med den senaste körningen överst. Tabellen visar vilka körningar som ska behållas om du har konfigurerat att behålla de tre senaste körningarna (ignorera effekten av inställningen antal dagar):
Springa # Filial Behålls/behålls inte Varför? Kör 10 main Behållen Senaste 3 för huvuddelen och senaste 3 för pipeline Kör 9 filial1 Behållen De senaste 3 i pipelinen Kör 8 gren2 Behållen De senaste 3 i pipelinen Kör 7 main Behållen Senaste 3 för huvudmenyn Kör 6 main Behållen Senaste 3 för huvudmenyn Kör 5 main Behålls inte Varken de senaste tre för main eller för pipeline Kör 4 main Behålls inte Varken de senaste tre för main eller för pipeline Kör 3 filial1 Behålls inte Varken de senaste tre för main eller för pipeline Kör 2 släppa Behållen Senaste 3 för lansering Kör 1 main Behålls inte Varken de senaste tre för main eller för pipeline Alla andra Git-lagringsplatser: Azure Pipelines behåller det konfigurerade antalet senaste körningar för hela pipelinen.
TFVC: Azure Pipelines behåller det konfigurerade antalet senaste körningar för hela pipelinen, oavsett gren.
Vilka delar av processen tas bort
Följande information tas bort när en körning tas bort:
- Loggar
- Alla pipeline-artifakter och byggartefakter
- Alla symboler
- Binärer
- Testresultat
- Köra metadataprocessen
- Källetiketter (TFVC) eller taggar (Git)
Allmänna paket, NuGet, npm och andra paket är inte knutna till bevarande av pipelines.
När tas körningar bort
Dina kvarhållningsprinciper hanteras en gång om dagen. Den tid då principerna får bearbetade variabler eftersom vi sprider arbetet under dagen i belastningsutjämningssyfte. Det finns inget alternativ för att ändra den här processen.
En kör tas bort om alla följande villkor är uppfyllda.
- Det överskrider antalet dagar som konfigurerats i kvarhållningsinställningarna
- Det är inte en av de senaste körningarna som konfigurerats i kvarhållningsinställningarna
- Den är inte markerad för att behållas på obestämd tid
- Den behålls inte av en version
Ange automatiskt kvarhållningslån för pipelinekörningar
Kvarhållningsavtal används för att hantera pipelinekörningarnas livslängd utöver de konfigurerade kvarhållningsperioderna. Kvarhållningsavtal kan läggas till eller tas bort under en körning av en pipeline genom att anropa Lease-API:et. Det här API:et kan anropas i pipelinen med hjälp av ett skript och använda fördefinierade variabler för runId och definitionId.
Ett indragningstillstånd kan läggas till på en pipeline under en viss period. En pipelinekörning som distribueras till en testmiljö kan till exempel behållas under en kortare tid medan en körning som distribueras till produktionsmiljön kan behållas längre.
Ange kvarhållningspolicy manuellt för pipelinekörningar
Du kan manuellt ställa in att en pipelinekörning ska behållas via menyn Fler åtgärder på informationssidan om pipelinekörning.
Ta bort en körning
Du kan ta bort körningar med menyn Fler åtgärder på sidan för pipelinekörningsdetaljer.
Anteckning
Om några kvarhållningsprinciper för närvarande gäller för körningen måste de tas bort innan körningen kan tas bort. Anvisningar finns i Information om pipelinekörning – ta bort en körning.
Produktteamet arbetar aktivt med att förbättra borttagningstiderna för data. Du kan märka en bearbetningsfördröjning på flera dagar när du tar bort data, om det finns flera testpunkter associerade med din värd.
Ange kvarhållningsprinciper för versioner
Kvarhållningsprinciperna för en klassisk versionspipeline avgör hur länge en version och körningen som är länkad till den behålls. Med hjälp av dessa principer kan du styra hur många dagar du vill behålla varje version när den senast har ändrats eller distribuerats och det minsta antalet versioner som ska behållas för varje pipeline.
Kvarhållningstimern för en version återställs varje gång en version ändras eller distribueras till en fas. Inställningen för att behålla ett minimalt antal versioner ges företräde över antalet dagar. Om du till exempel anger att minst tre versioner ska behållas behålls de senaste tre på obestämd tid – oavsett hur många dagar som har angetts. Du kan dock ta bort dessa versioner manuellt när du inte längre behöver dem. Se FAQ nedan för mer information om hur versionshantering fungerar.
Som skapare av en releasepipeline kan du anpassa principerna för kvarhållning för releaser av din pipeline på fliken Kvarhållning.
Kvarhållningsprincipen för YAML- och byggpipelines är densamma. Du kan se din pipelines kvarhållningsinställningar i Projektinställningar för pipelines i avsnittet Inställningar .
Global retentionspolicy för utgåvor
Om du använder en lokal Team Foundation Server eller Azure DevOps Server kan du ange standardinställningar för versionsbevarandeprincip och maxvärden för ett projekt. Du kan också ange när versioner förstörs permanent (tas bort från fliken Borttaget i build explorer).
Om du använder Azure DevOps Services kan du visa men inte ändra de här inställningarna för projektet.
Inställningar för global versionskvarhållningsprincip kan granskas från projektets inställningar för versionskvarhållning.
- Azure DevOps Services:
https://dev.azure.com/{organization}/{project}/_settings/release?app=ms.vss-build-web.build-release-hub-group - Lokalt:
https://{your_server}/tfs/{collection_name}/{project}/_admin/_apps/hub/ms.vss-releaseManagement-web.release-project-admin-hub
Den maximala kvarhållningsprincipen anger den övre gränsen för hur länge utgåvor får behållas för alla publiceringspipelines. Skapare av utgivningspipelines kan inte konfigurera inställningar för sina definitioner utöver de konfigurationsvärden som anges i det här sammanhanget.
Standardkvarhållningspolicyn anger de förvalda kvarhållningsvärdena för alla releasepipelines. Skapare av byggpipelines kan åsidosätta dessa värden.
Destruktionsprincipen hjälper dig att behålla versionerna under en viss tidsperiod efter att de har tagits bort. Den här policyn kan inte åsidosättas i enskilda releasepipelines.
Ange kvarhållningsprinciper på samlingsnivå
För lokala servrar kan du också ange kvarhållningsprinciper på samlingsnivå med anpassade kvarhållningsregler. Dessa bevarandeprinciper gäller för klassiska build-pipelines. Sidan på https://{your_server}/{collection_name}/_settings/buildqueue styr dina högsta värden och standardvärden.
Använd aktiviteten Kopiera filer för att spara data längre
Du kan använda aktiviteten Kopiera filer för att spara bygg- och artefaktdata längre än vad som anges i kvarhållningsprinciperna. Aktiviteten Kopiera filer är att föredra framför aktiviteten Publicera byggartefakter eftersom data som sparats med aktiviteten Publicera byggartefakter rensas regelbundet och tas bort.
Vanliga frågor
Gäller kvarhållningsprincipen fortfarande om jag markerar en körning eller en utgåva att behållas på obestämd tid?
Nej. Varken pipelinens lagringsprincip eller de maximigränser som angetts av administratören tillämpas när du markerar att en enskild körning eller version ska behållas på obestämd tid. Den förblir tills du slutar behålla den på obestämd tid.
Hur gör jag för att ange att körningar som distribueras till produktion ska behållas längre?
Om du använder klassiska versioner för att distribuera till produktionsmiljö, anpassa kvarhållningsprincipen i versionspipelinen. Ange hur många dagar versioner som distribueras till produktion måste behållas. Ange dessutom att körningar som är associerade med den versionen ska behållas. Detta åsidosätter kvarhållningsprincipen för körning.
Om du använder YAML-pipelines i flera steg för att distribuera till produktion finns den enda kvarhållningsprincip som du kan konfigurera i projektinställningarna. Du kan inte anpassa lagring baserat på den miljö där bygget distribueras.
Jag har inte markerat körningar som ska behållas utan tidsgräns. Jag ser dock att ett stort antal körningar behålls. Hur kan jag förhindra detta?
Detta kan bero på någon av följande orsaker:
- Körningarna markeras av någon i ditt projekt för att behållas för obestämd tid.
- Körningarna förbrukas av en version, och versionen har ett kvarhållningslås på dessa körningar. Anpassa kvarhållningspolicyn för utgivning enligt beskrivningen ovan.
Om du anser att körningarna inte längre behövs eller om versionerna redan har raderats, kan du ta bort körningarna manuellt.
Hur fungerar inställningen "minsta antal versioner att behålla"?
Minsta antal versioner som ska behållas definieras på stegnivå. Det innebär att Azure DevOps alltid kommer att behålla det angivna antalet senaste distribuerade releaser för ett steg, även om dessa releaser är utanför lagringsperioden. En utgåva kommer att övervägas bland de minimala utgåvor som ska behållas för ett steg först när distributionen började i det steget. Både lyckade och misslyckade distributioner beaktas. Versioner som väntar på godkännande beaktas inte.
Hur avgörs kvarhållningsperioden när versionen distribueras till flera faser med olika kvarhållningsperiod?
Den slutliga kvarhållningsperioden fastställs genom att ta hänsyn till de dagar som behövs för att behålla inställningarna för alla faser där versionen distribueras och att välja det maximala antalet dagar för att bevara dem. Minsta antal versioner som ska behållas styrs på fasnivå och ändras inte baserat på lansering som distribuerats till flera faser eller inte. Behåll associerade artefakter är tillämpligt när versionen distribueras till en etapp där det är inställt på sant.
Jag har tagit bort en etapp för vilken jag har några gamla versioner. Vilken kvarhållning kommer att övervägas för det här fallet?
När fasen tas bort är kvarhållningsinställningarna på stegnivå inte tillämpliga nu. Azure DevOps återgår till standardinställning för kvarhållning på projektnivå för sådana fall.
Min organisation kräver att vi behåller byggdistributioner och versioner längre än vad som tillåts i inställningarna. Hur kan jag begära en längre kvarhållningstid?
Det enda sättet att behålla en körning eller en version längre än vad som tillåts genom kvarhållningsinställningarna är att manuellt markera den för att behållas på obestämd tid. Det går inte att konfigurera en längre kvarhållningsinställning manuellt. Kontakta Azure DevOps-supporten om du behöver hjälp.
Du kan också utforska möjligheten att använda REST API:er för att ladda ned information och artefakter om körningarna och ladda upp dem till din egen lagrings- eller artefaktlagringsplats.
Jag förlorade några löprundor. Finns det något sätt att få dem tillbaka?
Om du tror att du har förlorat körningar på grund av en bugg i tjänsten, skapa omedelbart ett supportärende för att återställa den förlorade informationen. Om en versionsdefinition togs bort manuellt mer än en vecka tidigare går det inte att återställa den. Om körningarna togs bort som förväntat på grund av en retentionspolicy kommer det inte att vara möjligt att återställa de förlorade körningarna.
Hur gör jag för att använda Build.Cleanup agenternas kapacitet?
Om du ställer in en Build.Cleanup funktion på agenter kommer poolens rensningsjobb att dirigeras till bara dessa agenter, vilket gör att resten kan utföra regelbundet arbete. När en pipelinekörning tas bort rensas artefakter som lagras utanför Azure DevOps genom att ett jobb körs på agenterna. När agentpoolen blir mättad med rensningsjobb kan detta orsaka ett problem. Lösningen på detta är att utse en delmängd av agenter i poolen som är rensningsagenter. Om några agenter har Build.Cleanup angetts kommer endast dessa agenter att utföra rensningsjobben, vilket innebär att resten av agenterna är fria att fortsätta köra pipelinejobb. Rensningsfunktionen kan aktiveras genom att gå till Agent>Kapaciteter och ställa in Build.Cleanup till 1.
Vad händer med filresursartefakter när bygget tas bort
När en version med fildelningsartefakter tas bort placeras en ny bygguppgift i kö på en byggagent för att rensa dessa filer. En agent väljs för att utföra den här uppgiften baserat på följande villkor: Finns det en agent med Build.Cleanup tillgänglig kapacitet?
Är agenten som genomförde bygget tillgänglig?
Är en agent från samma pool tillgänglig?
Är en agent från en liknande pool tillgänglig?
Är någon agent tillgänglig?
Behålls automatiserade testresultat som publiceras som en del av en version tills versionen har tagits bort?
Testresultat som publicerats i ett steg i en version behålls enligt den kvarhållningsprincip som konfigurerats för testresultaten. Testresultaten arkiveras inte förrän utgåvan sparas. Om du behöver testresultaten så länge som släppet kvarstår, ställ in kvarhållningsinställningarna för automatiserade testkörningar i projektinställningarna till Aldrig ta bort. Detta säkerställer att testresultaten endast tas bort när versionen tas bort.
Tas manuella testresultat bort?
Nej. Manuella testresultat tas inte bort.
Hur gör jag för att bevara mina etiketter eller taggar för versionskontroll?
Varning
Alla versionskontrolletiketter eller taggar som tillämpas under en bygg-pipeline som inte skapas automatiskt från aktiviteten Källor bevaras, även om bygget tas bort. Alla etiketter eller taggar för versionskontroll som skapas automatiskt från aktiviteten Sources under kompileringen betraktas dock som en del av byggartefakterna och tas bort när bygget tas bort.
Om etiketter eller taggar för versionskontroll måste bevaras, även när bygget tas bort, måste de antingen tillämpas som en del av en aktivitet i pipelinen, manuellt märkta utanför pipelinen, eller så måste bygget bevaras på obestämd tid.
Vad händer med pipelines som används i andra pipelines?
Klassiska versioner behåller pipelines som de förbrukar automatiskt.
Vad händer med pipelines som används i andra pipelines?
Klassiska versioner behåller pipelines som de förbrukar automatiskt. Om du använder YAML kan du också skapa en YAML-pipeline i flera steg för att representera din version och använda en annan YAML-pipeline i den som en resurs. Resurspipelinen hålls kvar automatiskt så länge versionspipelinen hålls kvar.