Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Политики ретенции определяют, как долго сохраняются запуски конвейеров, классические релизы и тестовые данные в Azure DevOps. Эти параметры помогают сбалансировать использование хранилища, соответствие и возможность трассировки, определяя, когда следует удалять старые данные и какие данные следует хранить дольше. В этой статье описываются доступные параметры хранения и их применение к конвейерам, выпускам и тестам.
Требования
| Product | Требования |
|---|---|
| Azure DevOps | — организация Azure DevOps. — проект Azure DevOps. |
| Разрешения | — По умолчанию вы можете управлять политиками хранения, если вы являетесь участником групп "Сотрудники", "Администраторы сборки", "Администраторы проектов" или "Администраторы выпуска". — Для управления политиками хранения вам потребуется одна из следующих подписок: Корпоративные, тестовыеплатформы или платформы MSDN. — Вы также можете приобрести ежемесячный Azure Test Plans доступ и назначить уровень доступа Basic + Test Plans. Дополнительные сведения см. в разделе "Тестирование доступа по роли пользователя". |
Внимание
Azure Pipelines больше не поддерживает индивидуальные политики хранения для каждого конвейера. Рекомендуется использовать правила хранения на уровне проекта.
Настройка политик хранения
Чтобы открыть страницы параметров хранения в проекте и выбрать область политики, которую вы хотите управлять, выполните следующие действия.
Войдите в проект Azure DevOps.
Выберите значок
>Project параметры.Выберите один из следующих вариантов:
- В разделе "Конвейеры" выберите "Параметры ", чтобы настроить хранение для запусков, артефактов, символов, вложений и выполнения запросов на вытягивание.
- В разделе "Конвейеры" выберите "Хранение выпуска ", чтобы настроить параметры хранения выпуска, в том числе при удалении или окончательном уничтожении выпусков.
- В разделе "Тест" выберите "Хранение" , чтобы настроить время хранения вручную и автоматических тестов.
Политики хранения конвейера
В большинстве случаев вам не нужно хранить завершенные запуски бессрочно. Политики хранения позволяют определить, как долго запуски и связанные данные сохраняются перед удалением.
Перейдите на вкладку
>Параметры в параметрах вашего проекта.В разделе "Конвейеры" выберите "Параметры":
- Задайте количество дней для хранения артефактов, символов и вложений.
- Установите, на сколько дней сохранять запуски.
- Задайте количество дней для сохранения запусков pull request.
- Задайте количество последних запусков, которые необходимо сохранить для каждого потока.
Предупреждение
Azure DevOps больше не поддерживает правила хранения для каждого конвейера. Единственным способом настройки политик хранения для YAML и классических конвейеров является использование ранее описанных параметров проекта. Вы больше не можете настроить политики хранения для каждого конвейера.
Количество последних запусков, которые следует сохранить для каждой настройки конвейера интерпретируется по-разному в зависимости от типа репозитория:
Azure Repos: Azure Pipelines сохраняет настроенное число последних запусков для ветви по умолчанию pipeline и для каждой защищенной ветви в репозитории. Защищенная ветвь — это любая ветвь с настроенными политиками ветви.
Например, рассмотрим репозиторий с двумя ветвями:
mainиrelease. Если ветвь конвейера по умолчанию — этоmain, иreleaseимеет политику ветвей, тоreleaseрассматривается как защищенная ветвь. Если вы настроите хранение для трех запусков, Azure Pipelines сохраняет последние три запуска дляmain, последние три запуска дляreleaseи последние три запуска для конвейера в целом (независимо от ветви).В следующем примере предполагается, что последний запуск указан первым. В нем показано, какие запуски сохраняются при настройке хранения для сохранения последних трех запусков (игнорируя параметр на основе дней).
Забег # Ветвь Сохранено или не сохранено Почему? Запуск 10 главный Сохранено Последние 3 для основных и последних 3 для конвейера Запуск 9 филиал 1 Сохранено Последние 3 для конвейерной системы Запуск 8 ветка2 Сохранено Последние 3 для конвейерной системы Запуск 7 главный Сохранено Последние 3 для основного раздела Запуск 6 главный Сохранено Последние 3 для основного раздела Пробег 5 главный Не сохранено Не последние 3 для основной ветви или потока обработки Бег 4 главный Не сохранено Не последние 3 для основной ветви или потока обработки Запуск 3 филиал 1 Не сохранено Не последние 3 для основной ветви или потока обработки Бег 2 выпуск Сохранено Последняя версия 3 для выпуска Запуск 1 главный Не сохранено Не последние 3 для основной ветви или потока обработки Число дней хранения вычисляется с этой даты после завершения выполнения. В качестве примера, 19 января на главной ветви было два запуска. Запуск, который завершился позже, сохраняется.
Все другие репозитории Git: Azure Pipelines сохраняет настроенное число последних запусков для всего пайплайна.
Team Foundation Version Control (TFVC): Azure Pipelines сохраняет настроенное число последних запусков для всего конвейера независимо от ветви.
Какие части запуска удаляются
При удалении запуска удаляются следующие данные:
- Логи
- Все артефакты конвейера и сборки
- Все символы
- Двоичные файлы
- Результаты теста
- Запуск метаданных
- Исходные метки (TFVC) или теги (Git)
Сохранение выполнения конвейера не касается универсальных пакетов, а также пакетов NuGet, npm и других.
Когда выполняется удаление результатов?
Выполнение удаляется, если выполняются все следующие условия:
- Он превышает количество дней, настроенных в параметрах хранения.
- Это не один из последних запусков, которые определены в параметрах хранения.
- Он не помечен для неограниченного хранения.
- Он не сохраняется в релизе.
Политики хранения обрабатываются один раз в день. Время обработки зависит от того, что работа распределяется в течение дня для балансировки нагрузки. Вы не можете изменить это расписание.
Автоматическая установка срока хранения при выполнении конвейерных процессов
Аренды хранения позволяют расширить или контролировать время существования конвейера за пределами настроенных периодов хранения. Вы можете добавить или удалить арендные записи для запуска конвейера с помощью API аренды. Этот API можно вызвать из конвейера с помощью скрипта и предопределенных переменных для runId и definitionId.
Вы можете установить аренду на определенное время. Например, можно сохранить запуск, который развертывается в тестовой среде на более короткий срок. Вы можете сохранить выполнение, которое развертывается в рабочей среде в течение длительного времени.
Ручная настройка сроков хранения для запусков пайплайна
Вы можете вручную сохранить запуск конвейера из меню "Дополнительные действия" на странице сведений о запуске конвейера.
Удалить выполнение
Вы можете удалить запуски из меню "Дополнительные действия " на странице сведений о выполнении конвейера .
Примечание.
Если к запуску применяются какие-либо политики хранения, их необходимо удалить перед удалением запуска. Для получения инструкций см. раздел «Сведения о выполнении конвейера: Удаление выполнения».
Политики хранения релизов
Политики хранения выпусков для классических конвейеров выпуска определяют, сколько времени хранится выпуск и связанный с ним запуск. С помощью этих политик можно настроить оба:
- Количество дней, на протяжении которых сохраняется каждый выпуск после его последнего изменения или развертывания.
- Минимальное количество выпусков, которые необходимо сохранить для каждого конвейера.
Таймер хранения сбрасывается при каждом изменении или развертывании выпуска на этапе. Параметр минимального числа выпусков имеет приоритет над параметром, основанным на днях. Например, если задать минимальное значение 3 выпуска, последние выпуски сохраняются независимо от количества дней, настроенных. Эти выпуски по-прежнему можно удалить вручную, если они больше не нужны. Дополнительные сведения см. далее в этой статье.
Конвейеры YAML и сборки используют ту же политику сохранения запусков. Эти параметры можно просмотреть в разделе Project settings>Pipelines>Settings.
Глобальная политика сохранения выпусков
В службах Azure DevOps эти параметры можно просмотреть, но их нельзя изменить на уровне проекта.
Параметры хранения глобальных выпусков можно просмотреть на странице Release retention в настройках проекта.
- Максимальная политика хранения. Определяет верхний предел для длительности хранения выпусков во всех конвейерах выпуска. Авторы конвейеров не могут настроить хранение за пределами этого ограничения.
- Политика хранения по умолчанию: определяет значения хранения по умолчанию, применяемые к конвейерам выпуска. Авторы конвейера могут переопределить эти значения по умолчанию.
- Окончательно уничтожить выпуски: определяет, как долго удаленные выпуски хранятся до окончательного удаления. Отдельные конвейеры выпусков не могут переопределить эту политику.
Глобальная политика сохранения выпусков
Если вы используете Azure DevOps Server в локальной среде, можно настроить значения по умолчанию на уровне проекта и максимумы для хранения релиза. Вы также можете задать, когда удаленные выпуски окончательно уничтожены. (Они удаляются из вкладки "Удаленные" в обозревателе сборки.)
- Максимальная политика хранения. Определяет верхний предел для длительности хранения выпусков во всех конвейерах выпуска. Авторы конвейеров не могут настроить хранение за пределами этого ограничения.
- Политика хранения по умолчанию: определяет значения хранения по умолчанию, применяемые к конвейерам выпуска. Авторы конвейера могут переопределить эти значения по умолчанию.
- Окончательно уничтожить выпуски: определяет, как долго удаленные выпуски хранятся до окончательного удаления. Отдельные конвейеры выпусков не могут переопределить эту политику.
Настройка политик хранения на уровне коллекции
При использовании локального сервера можно также настроить хранение на уровне коллекции с помощью пользовательских правил. Эти параметры применяются к классическим конвейерам сборки и определяют значения по умолчанию и максимальное значение хранения для коллекции.
Использование задачи копирования файлов для сохранения данных дольше
Если необходимо сохранить результаты сборки дольше, чем настроенный период хранения, скопируйте их в собственное расположение хранилища с помощью задачи копирования файлов.
Используйте Скопировать файлы вместо Публикация артефактов сборки, так как данные, опубликованные как артефакты сборки, по-прежнему подлежат очистке хранения данных.
- task: CopyFiles@2
displayName: 'Copy Files to: \\mypath\storage\$(Build.BuildNumber)'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '_buildOutput/**'
TargetFolder: '\\mypath\storage\$(Build.BuildNumber)'
Вопросы и ответы
Если я помечаю запуск или выпуск, который будет храниться на неопределенный срок, применяется ли политика хранения?
№ Политика хранения конвейера и максимальные ограничения, установленные администратором, не применяются, когда вы помечаете отдельный запуск или выпуск для хранения на неопределенный срок. Он остается до тех пор, пока вы не перестанете сохранять его на неопределенный срок.
Как указать, что процессы, развернутые в среде производства, должны храниться дольше?
Если вы используете классические выпуски для развертывания в рабочей среде, настройте хранение в конвейере выпуска. Укажите, сколько дней вы хотите сохранить выпуски, развернутые в продакшене, и уточните, что запуски, связанные с этими выпусками, также сохраняются. Этот параметр переопределяет политику хранения запуска.
Если вы используете конвейеры YAML с несколькими этапами, можно настроить хранение только в параметрах проекта. Невозможно настроить хранение по среде развертывания.
Я не помечаю, что запуски будут сохранены на неопределенный срок, но многие запуски сохраняются. Как можно избежать этого?
Это может произойти из-за одной из следующих причин:
- Кто-то в проекте помечает запуски для неограниченного хранения.
- Релиз использует запуски, и релиз накладывает замок удержания на эти запуски. Настройте политику хранения выпуска, как описано ранее.
Если запуски больше не нужны, или если релизы, в которых они сохранялись, уже удалены, можно вручную удалить запуски.
Как работает настройка для сохранения минимального количества выпусков?
Минимальное количество релизов для сохранения определяется на уровне стадии. Azure DevOps всегда сохраняет указанное количество последних развернутых выпусков для этапа, даже если они находятся за пределами периода хранения. Выпуск засчитывается в этот минимум только когда начинается развертывание на этом этапе. Учитываются успешные и неудачные развертывания. Ожидающие утверждения выпуски не учитываются.
Как определяется период хранения при развертывании выпуска на нескольких этапах с разными периодами хранения?
Окончательный период хранения определяется днями для хранения параметров на всех этапах развертывания выпуска, используя максимальное значение среди этих этапов. Минимальное количество версий для сохранения зависит от стадии и не изменяется в зависимости от того, была ли версия развернута на одной стадии или на нескольких. Сохранение связанных артефактов применяется только при развертывании выпуска на этапе, где включена эта опция.
Я удалил этап, для которого у меня имелись некоторые старые релизы. Какой срок хранения рассматривается в этом случае?
После удаления этапа параметры хранения на уровне стадии больше не применяются. В этом случае Azure DevOps использует параметры хранения по умолчанию на уровне проекта.
Моя организация требует, чтобы мы сохраняли сборки и выпуски дольше, чем разрешено в параметрах. Как запросить более длительное хранение?
Чтобы сохранить выполнение или выпуск дольше, чем настроенные ограничения хранения, пометьте его на неопределенный срок. Настройка более длительного периода хранения вручную отсутствует. Чтобы получить помощь, обратитесь в службу поддержки Azure DevOps.
Вы также можете использовать REST API для скачивания информации о запуске и артефактов, а затем хранить их в своём аккаунте хранения или репозитории артефактов.
Я потерял некоторые результаты. Есть ли способ их вернуть?
Если вы думаете, что запуски были потеряны из-за ошибки службы, создайте запрос в службу поддержки немедленно. Если определение сборки было удалено вручную более чем за неделю до этого, его невозможно восстановить. Если запуски были удалены, как ожидалось политикой хранения, их невозможно восстановить.
Как использовать функцию Build.Cleanup агентов?
Установка Build.Cleanup возможности на агентах направляет задания очистки только на этих агентов, что позволяет другим агентам оставаться доступными для обычной работы с конвейером. При удалении запуска конвейера артефакты, хранящиеся вне Azure DevOps, очищаются с помощью задания агента. Если задания на очистку перегружают пул, назначьте подмножество агентов в качестве агентов по очистке. Если у всех агентов задано Build.Cleanup , только эти агенты выполняют задания очистки. Чтобы включить этот параметр, перейдите враздел "Возможности>" и задайте значение Build.Cleanup1.
Что происходит с артефактами общей папки при удалении сборки?
При удалении сборки с файловыми артефактами общего доступа на агенте сборки запускается новая задача для очистки этих файлов. Агент выбирается для выполнения этой задачи на основе следующих критериев:
- Доступен ли агент с
Build.Cleanupвозможностями? - Доступен ли агент, выполняющий сборку?
- Доступен ли агент из одного пула?
- Доступен ли агент из аналогичного пула?
- Доступен ли любой агент?
Сохраняются ли результаты автоматических тестов, опубликованных в рамках релиза, до его удаления?
Результаты тестирования, опубликованные на этапе выпуска, сохраняются в соответствии с политикой хранения тестов, а не политикой хранения выпуска. Если вам нужны результаты теста, сохраненные до выпуска, установите автоматическое хранение тестов в параметрах Project значение Never delete. Эта настройка гарантирует, что результаты теста удаляются только при удалении выпуска.
Удалены ли результаты теста вручную?
№ Результаты теста вручную не удаляются.
Как сохранить метки или теги системы управления версиями?
Если метки или теги должны быть сохранены после удаления сборки, примените их в задаче конвейера, добавьте их вручную вне конвейера или сохраните сборку бессрочно.
Внимание
Все теги системы управления версиями, примененные во время конвейера сборки и не созданные автоматически задачей "Источники", сохраняются, даже если сборка удаляется. Метки или теги, которые автоматически создаются задачей "Источники" во время сборки, обрабатываются как артефакты сборки и удаляются с помощью сборки.
Что происходит с конвейерами, которые используются в других конвейерах?
Классические выпуски сохраняют конвейеры, которые они используют автоматически.
Что происходит с конвейерами, которые используются в других конвейерах?
Классические выпуски сохраняют конвейеры, которые они используют автоматически. Если вы используете YAML, вы также можете создать многоэтапный конвейер YAML для представления выпуска и использования в нем другого конвейера YAML в качестве ресурса. Конвейер ресурсов сохраняется автоматически, пока конвейер выпуска сохраняется.