Zasady przechowywania

Usługi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Zasady przechowywania kontrolują czas działania potoku, wydania klasyczne i dane testowe przechowywane w Azure DevOps. Te ustawienia pomagają zrównoważyć użycie magazynu, zgodność i możliwość śledzenia, definiując, kiedy należy usunąć starsze dane i jakie dane powinny być przechowywane dłużej. W tym artykule opisano dostępne opcje przechowywania oraz sposób ich stosowania do potoków, wydań i testów.

Wymagania wstępne

Product Wymagania
Azure DevOps - Organizacja Azure DevOps.
- Projekt Azure DevOps.
uprawnienia — Domyślnie możesz zarządzać zasadami przechowywania, jeśli jesteś członkiem grupy Współautorzy, Administratorzy kompilacji, Administratorzy projektów lub Administratorzy wydań.
— Aby zarządzać zasadami przechowywania, potrzebujesz jednej z następujących subskrypcji: Enterprise, Test Professional lub MSDN Platformy.
— Możesz również zakupić miesięczny dostęp do Azure Test Plans i przypisać poziom dostępu Basic + Test Plans. Aby uzyskać więcej informacji, zobacz Testowanie dostępu według roli użytkownika.

Ważne

Azure Pipelines nie obsługuje już zasad przechowywania danych dla poszczególnych potoków. Zalecamy używanie reguł przechowywania na poziomie projektu.

Konfigurowanie zasad przechowywania

Aby otworzyć strony ustawień przechowywania w projekcie i wybrać obszar zasad, którym chcesz zarządzać, wykonaj następujące kroki:

  1. Zaloguj się do projektu Azure DevOps.

  2. Wybierz ikonę zębatki>Ustawienia projektu.

  3. Wybierz jedną z następujących opcji:

    • W obszarze Pipeline'y wybierz pozycję Ustawienia, aby skonfigurować przechowywanie przebiegów, artefaktów, symboli, załączników i przebiegów żądań ściągnięcia.
    • W obszarze Potoki wybierz pozycję Przechowywanie wersji , aby skonfigurować ustawienia przechowywania wersji, w tym w przypadku usunięcia lub trwałego zniszczenia wydań.
    • W obszarze Testowanie wybierz pozycję Przechowywanie , aby skonfigurować czas przechowywania przebiegów testów ręcznych i automatycznych.

Zasady przechowywania przebiegów potoków

W większości przypadków nie trzeba utrzymywać ukończonych zadań na czas nieokreślony. Zasady przechowywania wyników umożliwiają zdefiniowanie, jak długo wyniki i powiązane dane są przechowywane, zanim zostaną usunięte.

  1. Przejdź do ikony koła zębatego na karcie > w ustawieniach projektu.

  2. W sekcji Potoki wybierz pozycję Ustawienia:

    • Ustaw liczbę dni przechowywania artefaktów, symboli i załączników.
    • Ustaw liczbę dni przechowywania przebiegów.
    • Ustaw liczbę dni, przez które mają być uruchamiane żądania ściągnięcia.
    • Ustaw liczbę ostatnich przebiegów , które mają być zachowywane dla każdego potoku.

Ostrzeżenie

Azure DevOps nie obsługuje już indywidualnych reguł przechowywania dla pipeline. Jedynym sposobem skonfigurowania zasad przechowywania dla potoków YAML i potoków klasycznych jest wcześniej opisane ustawienia projektu. Nie można już skonfigurować zasad przechowywania dla poszczególnych potoków.

Liczba ostatnich przebiegów do zachowania dla każdego ustawienia potoku jest interpretowana inaczej na podstawie typu repozytorium:

  • Azure Repos: Azure Pipelines zachowuje skonfigurowaną liczbę najnowszych uruchomień dla domyślnej gałęzi pipeline i dla każdej chronionej gałęzi w repozytorium. Chroniona gałąź to każda gałąź z skonfigurowanymi politykami gałęzi.

    Rozważmy na przykład repozytorium z dwoma gałęziami: main i release. Jeśli domyślna gałąź potoku to main i release ma politykę gałęzi, wtedy release jest traktowana jako gałąź chroniona. Jeśli skonfigurujesz przechowywanie na trzy uruchomienia, Azure Pipelines przechowuje najnowsze trzy uruchomienia dla main, najnowsze trzy uruchomienia dla release oraz najnowsze trzy uruchomienia dla całego potoku (niezależnie od gałęzi).

    W poniższym przykładzie przyjęto założenie, że ostatni przebieg jest wymieniony jako pierwszy. Pokazuje, które przebiegi są zachowywane podczas konfigurowania przechowywania w celu zachowania najnowszych trzech przebiegów (ignorując ustawienie oparte na dniach).

    Biegać # Oddział Zachowane/nie zachowane Dlaczego?
    Uruchom 10 główny Zachowywane Najnowsze 3 dla głównego i najnowszego 3 dla potoku
    Bieg 9 oddział1 Zachowywane Najnowsze 3 dla potoku
    Uruchom 8 Oddział2 Zachowywane Najnowsze 3 dla potoku
    Bieg 7 główny Zachowywane Najnowsze 3 dla głównej wersji
    Bieg 6 główny Zachowywane Najnowsze 3 dla głównej wersji
    Uruchom 5 główny Nie zachowano Nie najnowsze 3 dla potoku głównego lub potoku
    Uruchom 4 główny Nie zachowano Nie najnowsze 3 dla potoku głównego lub potoku
    Uruchom 3 oddział1 Nie zachowano Nie najnowsze 3 dla potoku głównego lub potoku
    Przebieg 2 wersja Zachowywane Najnowsza wersja 3 do wydania
    Przebieg 1 główny Nie zachowano Nie najnowsze 3 dla potoku głównego lub potoku

    Liczba dni do zachowania jest obliczana od daty, gdy przebieg jest zakończony. Na przykład 19 stycznia mają miejsce dwa uruchomienia w gałęzi głównej. Przebieg, który zakończył się później, zostanie zachowany.

  • Wszystkie inne repozytoria Git: Azure Pipelines zachowuje określoną liczbę najnowszych przebiegów dla kompletnego potoku.

  • Team Foundation Version Control (TFVC): Azure Pipelines zachowuje skonfigurowaną liczbę najnowszych przebiegów dla całego potoku, niezależnie od gałęzi.

Uwaga

Zasady przechowywania zachowują tylko przebiegi zakończone pomyślnie i częściowo zakończone powodzeniem.

Jakie części przebiegu zostaną usunięte

Po usunięciu przebiegu zostaną usunięte następujące dane:

  • Dzienniki
  • Wszystkie artefakty przetwarzania i kompilacji
  • Wszystkie symbole
  • Pliki binarne
  • Wyniki testu
  • Uruchamianie metadanych
  • Etykiety źródłowe (TFVC) lub tagi (Git)

Przechowywanie przebiegów potoku nie obejmuje zarządzania pakietami uniwersalnymi, NuGet, npm i innymi pakietami.

Kiedy są usuwane przebiegi

Przebieg zostanie usunięty, jeśli spełnione są wszystkie następujące warunki:

  • Przekracza on liczbę dni skonfigurowanych w ustawieniach przechowywania.
  • Nie jest to jeden z ostatnich uruchomień skonfigurowanych w ustawieniach retencji.
  • Nie jest ona oznaczona do przechowywania na czas nieokreślony.
  • Nie jest zachowywany podczas wydania.

Zasady przechowywania są przetwarzane raz dziennie. Czas przetwarzania różni się, ponieważ praca jest dystrybuowana przez cały dzień na potrzeby równoważenia obciążenia. Nie można zmienić tego harmonogramu.

Automatyczne ustawianie zasad przechowywania dla przebiegów potoków

Dzierżawy retencji umożliwiają wydłużenie lub kontrolowanie okresu przebiegu potoków poza zdefiniowanymi okresami retencji. Dzierżawy dla przebiegu potoku można dodawać lub usuwać przy użyciu interfejsu API dzierżawy. Można wywołać ten interfejs API z poziomu potoku, używając skryptu i wstępnie zdefiniowanych zmiennych dla runId i definitionId.

Dzierżawę można ustawić dla określonego czasu trwania. Można na przykład zatrzymać przebieg, który jest wdrażany w środowisko testowe na krótszy okres. Można zachować przebieg, który jest wdrażany w środowisku produkcyjnym przez dłuższy czas.

Ręczne ustawianie polityki przechowywania w uruchomieniach potoku

Możesz ręcznie zachować przebieg potoku z menu Więcej akcji na stronie Szczegóły przebiegu potoku .

Zrzut ekranu pokazujący, jak ręcznie zachować przebieg.

Usuń przebieg

Uruchomienia można usunąć z menu Więcej akcji na stronie Szczegóły przebiegu potoku .

Zrzut ekranu przedstawiający sposób usuwania uruchomienia.

Uwaga

Jeśli jakiekolwiek zasady przechowywania są obecnie stosowane do uruchomienia, należy je usunąć przed usunięciem uruchomienia. Aby uzyskać instrukcje, zobacz Szczegóły przebiegu potoku: Usuwanie przebiegu.

Zasady przechowywania wersji

Zasady przechowywania wersji dla klasycznych potoków wydania określają, jak długo jest przechowywane wydanie i skojarzone z nim uruchomienie. Za pomocą tych zasad można skonfigurować obie te zasady:

  • Liczba dni przechowywania każdej wersji po ostatniej modyfikacji lub wdrożeniu.
  • Minimalna liczba wydań do zachowania dla każdego potoku.

Czasomierz przechowywania resetuje się za każdym razem, gdy wydanie jest modyfikowane lub wdrażane na etapie. Ustawienie minimalnego wydania ma pierwszeństwo przed ustawieniem bazującym na dniach. Jeśli na przykład ustawisz minimalną wartość trzech wydań, trzy najnowsze wersje zostaną zachowane niezależnie od liczby skonfigurowanych dni. Nadal można usunąć te wersje ręcznie, gdy nie są już potrzebne. Aby uzyskać więcej informacji, zobacz często zadawane pytania w dalszej części tego artykułu.

Potoki YAML i kompilacji używają tych samych zasad przechowywania przebiegu. Te ustawienia można wyświetlić w obszarze Project settings>Pipelines>Settings.

Globalne zasady przechowywania wersji

W usługach Azure DevOps można wyświetlić te ustawienia, ale nie można ich zmienić na poziomie projektu.

Możesz przejrzeć globalne ustawienia przechowywania wersji na stronie Release retention w Ustawieniach projektu:

  • Zasady maksymalnego przechowywania: definiuje górny limit czasu przechowywania wersji we wszystkich potokach wydania. Autorzy potoków nie mogą skonfigurować przechowywania poza tym limitem.
  • Domyślne zasady przechowywania: definiuje domyślne wartości przechowywania stosowane do potoków wydania. Autorzy potoków mogą zastąpić te wartości domyślne.
  • Trwałe niszczenie wersji: określa czas przechowywania usuniętych wydań przed trwałym usunięciem. Pojedyncze potoki wydania nie mogą zastąpić tej zasady.

Globalne zasady przechowywania wersji

Jeśli używasz Azure DevOps Server lokalnie, możesz skonfigurować wartości domyślne i maksymalne na poziomie projektu na potrzeby przechowywania wersji. Można również ustawić, gdy usunięte wydania zostaną trwale zniszczone. (Są one usuwane z karty Usunięte w Eksploratorze kompilacji).

  • Zasady maksymalnego przechowywania: definiuje górny limit czasu przechowywania wersji we wszystkich potokach wydania. Autorzy potoków nie mogą skonfigurować przechowywania poza tym limitem.
  • Domyślne zasady przechowywania: definiuje domyślne wartości przechowywania stosowane do potoków wydania. Autorzy potoków mogą zastąpić te wartości domyślne.
  • Trwałe niszczenie wersji: określa czas przechowywania usuniętych wydań przed trwałym usunięciem. Pojedyncze potoki wydania nie mogą zastąpić tej zasady.

Screenshot przedstawiający ustawienia zasad przechowywania w Azure DevOps Server.

Ustawianie zasad przechowywania na poziomie kolekcji

Jeśli używasz serwera lokalnego, możesz również skonfigurować przechowywanie na poziomie kolekcji przy użyciu reguł niestandardowych. Te ustawienia dotyczą klasycznych potoków kompilacji i definiują domyślne i maksymalne wartości przechowywania dla kolekcji.

Zrzut ekranu przedstawiający sposób konfigurowania zasad przechowywania na poziomie kolekcji.

Użyj zadania Kopiowanie plików, aby dłużej zapisywać dane

Jeśli musisz zachować dane wyjściowe kompilacji dłużej niż skonfigurowany okres przechowywania, skopiuj je do własnej lokalizacji magazynu przy użyciu zadania Kopiowanie plików.

Korzystaj z Kopiuj pliki zamiast Publikuj artefakty kompilacji ze względu na to, że dane publikowane jako artefakty kompilacji nadal podlegają czyszczeniu w ramach retencji.

- task: CopyFiles@2
  displayName: 'Copy Files to: \\mypath\storage\$(Build.BuildNumber)'
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'
    Contents: '_buildOutput/**'
    TargetFolder: '\\mypath\storage\$(Build.BuildNumber)'

Często zadawane pytania

Czy jeśli oznaczę przebieg lub wydanie do zachowania na czas nieokreślony, zasady przechowywania wciąż obowiązują?

Nr. Polityka przechowywania potoku i maksymalne limity ustawione przez administratora nie są stosowane w przypadku oznaczenia pojedynczego uruchomienia lub wydania w celu nieokreślonego przechowywania. Pozostaje, dopóki nie przestaniesz go przechowywać na czas nieokreślony.

Jak określić, że przebiegi wdrożone w środowisku produkcyjnym powinny być przechowywane dłużej?

Jeśli używasz klasycznych wydań do wdrażania w środowisku produkcyjnym, dostosuj ustawienia przechowywania w potoku wydawniczym. Ustaw liczbę dni przechowywania wersji wdrożonych w środowisku produkcyjnym i zapewnij, że procesy związane z tymi wersjami są również przechowywane. To ustawienie zastępuje zasady przechowywania wyników.

Jeśli używasz wielostopniowych potoków YAML, możesz skonfigurować przechowywanie tylko w ustawieniach projektu. Nie można skonfigurować przechowywania przez środowisko wdrażania.

Nie oznaczyłem przebiegów do zachowania na czas nieokreślony, ale wiele przebiegów jest zachowywanych. Jak mogę zapobiec temu zachowaniu?

Takie zachowanie może wystąpić z jednego z następujących powodów:

  • Ktoś w twoim projekcie oznaczył zadania do bezterminowego przechowywania.
  • Wydanie zużywa przebiegi, a wydanie przechowuje blokadę retencyjną na tych przebiegach. Dostosuj zasady przechowywania wersji zgodnie z wcześniejszym wyjaśnieniem.

Jeśli uruchomienia nie są już potrzebne lub jeśli wersje, które je zachowały, zostały już usunięte, możesz je ręcznie usunąć.

Jak działa ustawienie minimalnej liczby wydań do zachowania?

Minimalne wydania, aby zachować wartość, są definiowane na poziomie etapu. Azure DevOps zawsze przechowuje określoną liczbę najnowszych wdrożonych wydań dla danej fazy, nawet jeśli wykraczają poza okres przechowywania. Wydanie jest liczone do tego minimum tylko wtedy, gdy rozpoczyna się wdrażanie na tym etapie. Zliczane są wdrożenia zakończone powodzeniem i niepowodzeniem. Wersje oczekujące na zatwierdzenie nie są liczone.

W jaki sposób okres przechowywania jest decydowany, kiedy wydanie jest wdrażane na wielu etapach, które mają różne okresy przechowywania?

Okres przechowywania końcowego jest określany przez ustawienia Dni przechowywania we wszystkich etapach, w których wdrażana jest wersja, wykorzystując maksymalną wartość z tych etapów. Minimalne wydania, które należy zachować , są specyficzne dla etapu i nie zmieniają się w zależności od tego, czy wydanie zostało wdrożone na jednym lub wielu etapach. Zachowanie skojarzonych artefaktów ma zastosowanie tylko wtedy, gdy wydanie jest wdrażane na etapie, w którym ta opcja jest włączona.

Usunąłem etap, dla którego mam jakieś stare wersje. Jakie przechowywanie jest brane pod uwagę w tym przypadku?

Po usunięciu etapu ustawienia przechowywania na poziomie etapu nie będą już stosowane. W takim przypadku Azure DevOps używa domyślnych ustawień przechowywania na poziomie projektu.

Moja organizacja wymaga zachowania kompilacji i wydań dłużej niż to, na co pozwalają ustawienia. Jak mogę przedłużyć okres przechowywania?

Aby zachować przebieg lub wersję dłużej niż skonfigurowane limity przechowywania, oznacz ją do zachowania na czas nieokreślony. Nie ma ustawienia ręcznego konfigurowania dłuższego okresu przechowywania. Aby uzyskać pomoc, skontaktuj się z Azure DevOps Support.

Możesz także skorzystać z interfejsów API REST, aby pobrać informacje o przebiegu i artefakty, a następnie przechowywać je w swoim koncie magazynu lub bazie artefaktów.

Straciłem kilka runów. Czy istnieje sposób, aby je odzyskać?

Jeśli uważasz, że przebiegi zostały utracone z powodu błędu serwisowego, natychmiast utwórz zgłoszenie do wsparcia technicznego. Jeśli definicja kompilacji została ręcznie usunięta ponad tydzień wcześniej, nie można jej odzyskać. Jeśli przebiegi zostały usunięte zgodnie z oczekiwaniami przez zasady przechowywania, nie można ich odzyskać.

Jak używać funkcji Build.Cleanup agentów?

Ustawienie możliwości Build.Cleanup na agentach kieruje zadania oczyszczania wyłącznie do tych agentów, co pozostawia inne agenty dostępne do regularnej pracy związanej z potokiem. Po usunięciu uruchomienia potoku artefakty przechowywane poza Azure DevOps są czyszczone za pośrednictwem zadania agenta. Jeśli zadania oczyszczania nasycają pulę, należy wyznaczyć podzbiór agentów do zadań oczyszczania. Gdy którykolwiek z agentów ma ustawione Build.Cleanup, tylko ci agenci uruchamiają zadania oczyszczania. Aby włączyć to ustawienie, przejdź do Agenta>Możliwości i ustaw wartość Build.Cleanup na 1.

Co się stanie z artefaktami udostępniania plików po usunięciu kompilacji?

Po usunięciu kompilacji z artefaktami udostępniania plików, nowe zadanie kompilacji jest kolejkowane na agencie kompilacji w celu oczyszczenia tych plików. Agent jest wybierany do wykonania tego zadania na podstawie następujących kryteriów:

  • Czy jest dostępny agent z możliwością Build.Cleanup?
  • Czy agent, który uruchomił kompilację, jest dostępny?
  • Czy jest dostępny agent z tej samej puli?
  • Czy agent z podobnej puli jest dostępny?
  • Czy jakikolwiek agent jest dostępny?

Czy wyniki testów automatycznych, które są publikowane w ramach wydania, są zachowywane do momentu usunięcia wydania?

Wyniki testów opublikowane na etapie wydania są zachowywane zgodnie z zasadami przechowywania testów, a nie zasadami przechowywania wersji. Jeśli potrzebujesz wyników testów zachowanych tak długo, jak trwa wydanie, ustaw automatyczne przechowywanie wyników testu w ustawieniach Project na Nigdy nie usuwaj. To ustawienie gwarantuje, że wyniki testów zostaną usunięte tylko wtedy, gdy wydanie zostanie usunięte.

Czy wyniki testów ręcznych są usuwane?

Nr. Wyniki testów ręcznych nie są usuwane.

Jak mogę zachować etykiety lub tagi kontroli wersji?

Jeśli etykiety lub tagi muszą być zachowywane po usunięciu kompilacji, zastosuj je w zadaniu potoku, dodaj je ręcznie poza potokiem lub zachowaj kompilację na czas nieokreślony.

Ważne

Wszystkie etykiety kontroli wersji lub tagi stosowane podczas potoku kompilacji, które nie są automatycznie tworzone przez zadanie Źródła , są zachowywane, nawet jeśli kompilacja zostanie usunięta. Etykiety lub tagi tworzone automatycznie przez zadanie Źródła podczas kompilacji są traktowane jako artefakty kompilacji i są usuwane z kompilacji.

Co się dzieje z rurami, które są wchłonięte w inne rury?

Wersje klasyczne zachowują potoki, z których korzystają automatycznie.

Co się dzieje z rurami, które są wchłonięte w inne rury?

Wersje klasyczne zachowują potoki, z których korzystają automatycznie. Jeśli używasz języka YAML, możesz również utworzyć wielostopniowy potok YAML reprezentujący publikację i użyć w nim innego potoku YAML jako zasobu. Potok zasobów jest zachowywany automatycznie, o ile potok wydania zostanie zachowany.