Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Политики ретенции определяют, как долго сохраняются запуски конвейеров, классические релизы и тестовые данные в Azure DevOps. Эти параметры помогают сбалансировать использование хранилища, соответствие и возможность трассировки, определяя, когда следует удалять старые данные и что следует хранить дольше. В этой статье описываются доступные варианты хранения и их применение к конвейерам, выпускам и тестам.
Требования
| Товар | Требования |
|---|---|
| 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 сохраняет настроенное число последних запусков для всей проводки.
TFVC: Azure Pipelines сохраняет настроенное количество последних запусков для всего конвейера независимо от ветви.
Какие части запуска удаляются
При удалении запуска удаляются следующие данные:
- Логи
- Все артефакты конвейера и сборки
- Все символы
- Двоичные файлы
- Результаты теста
- Запуск метаданных
- Исходные метки (TFVC) или теги (Git)
Универсальными пакетами, NuGet, npm и другими пакетами не управляет сохранение запусков конвейера.
Когда выполняется удаление результатов?
Прогон удаляется, если выполняются все следующие условия:
- Оно превышает количество дней, настроенных в параметрах хранения.
- Это не один из последних запусков, настроенных в параметрах хранения.
- Оно не отмечено для сохранения на неопределённое время
- Он не сохраняется в версии выпуска.
Политики хранения обрабатываются один раз в день. Время обработки зависит от того, что работа распределяется в течение дня для балансировки нагрузки, и это расписание не может быть изменено.
Автоматическая установка срока хранения при выполнении конвейерных процессов
Аренды хранения позволяют расширить или контролировать время существования конвейера за пределами настроенных периодов хранения. Вы можете добавить или удалить арендные записи для запуска конвейера с помощью API аренды. Этот API можно вызвать из конвейера с помощью скрипта и предопределенных переменных для runId и definitionId.
Вы можете установить аренду на определенное время. Например, выполнение, которое развертывается в тестовой среде, может храниться в течение более короткого периода, а выполнение, которое развертывается в рабочей среде, может быть сохранено дольше.
Ручная настройка сроков хранения для запусков пайплайна
Вы можете вручную сохранить запуск конвейера из меню "Дополнительные действия" на странице сведений о запуске конвейера.
Удалить выполнение
Вы можете удалить запуски из меню "Дополнительные действия " на странице сведений о выполнении конвейера .
Примечание.
Если в данный момент к запуску применяются какие-либо политики хранения, их необходимо удалить перед удалением. Для получения инструкций см. раздел «Сведения о запуске конвейера» — удаление выполнения.
Политики хранения релизов
Политики хранения выпусков для классических конвейеров выпуска определяют, сколько времени хранится выпуск и связанный с ним запуск. С помощью этих политик можно настроить оба:
- Количество дней, на протяжении которых сохраняется каждый выпуск после его последнего изменения или развертывания.
- Минимальное количество выпусков, которые необходимо сохранить для каждого конвейера.
Таймер хранения сбрасывается при каждом изменении или развертывании выпуска на этапе. Параметр минимального числа выпусков имеет приоритет над параметром, основанным на днях. Например, если задать минимальное значение 3 выпуска, последние выпуски сохраняются независимо от количества дней, настроенных. Эти выпуски по-прежнему можно удалить вручную, если они больше не нужны. Дополнительные сведения см. далее в этой статье.
Конвейеры YAML и сборки используют ту же политику сохранения запусков. Эти параметры можно просмотреть в разделе Project settings>Pipelines>Settings.
Глобальная политика сохранения выпусков
В службах Azure DevOps эти параметры можно просмотреть, но не удается изменить их на уровне проекта.
Параметры удержания глобальных выпусков можно просмотреть на странице Удержание выпусков в Настройках проекта.
Максимальная политика хранения определяет верхний предел для длительности хранения выпусков во всех конвейерах выпуска. Авторы конвейеров не могут настроить хранение за пределами этого ограничения.
Политика хранения по умолчанию определяет значения хранения по умолчанию, применяемые к конвейерам выпуска. Авторы конвейера могут переопределить эти значения по умолчанию.
Окончательное уничтожение выпусков определяет, как долго удаленные выпуски хранятся до окончательного удаления. Отдельные конвейеры выпусков не могут переопределить эту политику.
Глобальная политика сохранения выпусков
Если вы используете 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 в качестве ресурса. Конвейер ресурсов будет автоматически сохраняться, пока сохраняется конвейер выпуска.