Поделиться через


Определение steps.checkout

Используется checkout для настройки того, как конвейер проверяет исходный код.

steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
  clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
  fetchDepth: string # Depth of Git graph to fetch.
  fetchFilter: string # Filter Git history.
  fetchTags: string # Set to 'true' to sync tags when fetching the repo, or 'false' to not sync tags. See remarks for the default behavior.
  lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
  persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
  submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
  path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
  sparseCheckoutDirectories: string # Directories for sparse checkout in cone mode and prioritized over sparseCheckoutPatterns if both properties are provided.
  sparseCheckoutPatterns: string # Patterns for sparse checkout in non-cone mode that are ignored if sparseCheckoutDirectories is provided.
  workspaceRepo: true | false # When true, use the repository root directory as the default working directory for the pipeline. The default is false.
  condition: string # Evaluate this condition expression to determine whether to run this task.
  continueOnError: boolean # Continue running even on failure?
  displayName: string # Human-readable name for the task.
  target: string | target # Environment in which to run this task.
  enabled: boolean # Run this task when the job runs?
  env: # Variables to map into the process's environment.
    string: string # Name/value pairs
  name: string # ID of the step.
  timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
  retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
  clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
  fetchDepth: string # Depth of Git graph to fetch.
  fetchTags: string # Set to 'true' to sync tags when fetching the repo, or 'false' to not sync tags. See remarks for the default behavior.
  lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
  persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
  submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
  path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
  condition: string # Evaluate this condition expression to determine whether to run this task.
  continueOnError: boolean # Continue running even on failure?
  displayName: string # Human-readable name for the task.
  target: string | target # Environment in which to run this task.
  enabled: boolean # Run this task when the job runs?
  env: # Variables to map into the process's environment.
    string: string # Name/value pairs
  name: string # ID of the step.
  timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
  retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
  clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
  fetchDepth: string # Depth of Git graph to fetch.
  lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
  persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
  submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
  path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
  condition: string # Evaluate this condition expression to determine whether to run this task.
  continueOnError: boolean # Continue running even on failure?
  displayName: string # Human-readable name for the task.
  target: string | target # Environment in which to run this task.
  enabled: boolean # Run this task when the job runs?
  env: # Variables to map into the process's environment.
    string: string # Name/value pairs
  name: string # ID of the step.
  timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.
  retryCountOnTaskFailure: string # Number of retries if the task fails.
steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
  clean: true | false # If true, run git clean -ffdx followed by git reset --hard HEAD before fetching.
  fetchDepth: string # Depth of Git graph to fetch.
  lfs: string # Set to 'true' to download Git-LFS files. Default is not to download them.
  persistCredentials: string # Set to 'true' to leave the OAuth token in the Git config after the initial fetch. The default is not to leave it.
  submodules: string # Set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules. Default is not to fetch submodules.
  path: string # Where to put the repository. The root directory is $(Pipeline.Workspace).
  condition: string # Evaluate this condition expression to determine whether to run this task.
  continueOnError: boolean # Continue running even on failure?
  displayName: string # Human-readable name for the task.
  target: string | target # Environment in which to run this task.
  enabled: boolean # Run this task when the job runs?
  env: # Variables to map into the process's environment.
    string: string # Name/value pairs
  name: string # ID of the step.
  timeoutInMinutes: string # Time to wait for this task to complete before the server kills it.

Определения, ссылающиеся на это определение: шаги

Свойства

строка checkout. Обязательный в качестве первого свойства.
Настраивает получение для указанного репозитория. Укажитеself, noneимя репозитория или ресурс репозитория. Для получения дополнительной информации см. Обзор нескольких репозиториев в вашем конвейере.

Замечание

Если шаг отсутствует checkout , он по умолчанию используется self для jobs.job.step.checkout и none для jobs.deployment.steps.checkout.

строка clean.
Если значение true, запустите git clean -ffdx после сброса git --hard HEAD перед получением. true | ложный.

строка fetchDepth.
Глубина графа Git для получения.

строка fetchFilter.
Используется fetchFilter для фильтрации журнала Git для частичного клонирования. Этот fetchFilter параметр поддерживает безукоризненные и большие двоичные объекты. Для получения без дерева укажите и укажите fetchFilter: tree:0 необязание fetchFilter: blob:noneбольшого двоичного объекта. По умолчанию фильтрация не выполняется.

строка fetchTags.
Установите значение true для синхронизации тегов при получении репозитория или false, чтобы не синхронизировать теги. См. примечания по умолчанию.

строка lfs.
Задайте значение true, чтобы скачать Git-LFS файлы. По умолчанию их не следует скачивать.

строка persistCredentials.
Установите значение true, чтобы оставить маркер OAuth в конфигурации Git после начального получения. Значение по умолчанию не следует оставлять.

строка submodules.
Задайте значение true для одного уровня подмодул или рекурсивного, чтобы получить подмодулы подмодулы подмодул. По умолчанию не требуется получить подмодулы.

строка path.
Куда поместить репозиторий. Корневой каталог — $(Pipeline.Workspace). По умолчанию эта папка должна находиться в структуре рабочего каталога агента. Чтобы задать путь за пределами рабочего каталога агента, задайте переменную конвейера с именем AZP_AGENT_ALLOW_WORK_DIRECTORY_REPOSITORIES true и используйте префикс ../ в начале пути выхода. Поддерживается в агенте версии 3.230.0 и выше.

строка sparseCheckoutDirectories.
Укажите каталог для включения разреженного извлечения в режиме конуса с помощью сопоставления каталогов. Разделение нескольких каталогов с помощью пробела. Поддерживается в агенте версии 3.253.0/4.253.0 и более поздней версии с Git 2.25 или более поздней.

- checkout: repo
  sparseCheckoutDirectories: src

sparseCheckoutDirectories Если оба и задано, sparseCheckoutDirectories используется и sparseCheckoutPatterns параметр для sparseCheckoutPatterns него игнорируется.

Дополнительные сведения о разреженном извлечении см. в разделе "Перенос монорепо" к размеру с разреженным получением.

строка sparseCheckoutPatterns.
Укажите шаблон для включения разреженного извлечения в режиме без конуса с помощью сопоставления шаблонов. Разделение нескольких шаблонов с помощью пробела. Поддерживается в агенте версии 3.253.0/4.253.0 и более поздней версии с Git 2.25 или более поздней.

- checkout: repo
  sparseCheckoutPatterns: /* !/img

sparseCheckoutDirectories Если оба и задано, sparseCheckoutDirectories используется и sparseCheckoutPatterns параметр для sparseCheckoutPatterns него игнорируется.

Дополнительные сведения о разреженном извлечении см. в разделе "Перенос монорепо" к размеру с разреженным получением.

строка workspaceRepo.
Если значение true, используйте корневой каталог репозитория в качестве рабочего каталога по умолчанию для конвейера. Значение по умолчанию — false.

строка condition.
оценить это выражение условия, чтобы определить, следует ли выполнять эту задачу.

continueOnError логические.
Продолжить работу даже при сбое?

строка displayName.
имя, доступное для чтения для задачи.

target целевой.
среда, в которой выполняется эта задача.

enabled логические.
запустить эту задачу при выполнении задания?

env словарь строк.
Переменные для сопоставления с средой процесса.

строка name.
идентификатор шага. Допустимые значения: [-_A-Za-z0-9]*.

строка timeoutInMinutes.
время ожидания завершения этой задачи до того, как сервер убьет его.

Замечание

Конвейеры могут быть настроены с временем ожидания уровня задания. Если интервал времени ожидания задания истекает до завершения шага, выполнение задания (включая шаг) завершается, даже если шаг настроен с более длинным интервалом timeoutInMinutes. Дополнительные сведения см. в разделе "Время ожидания".

строка retryCountOnTaskFailure.
число повторных попыток, если задача завершается ошибкой.

Замечания

Неглубокое получение

Замечание

В некоторых организациях новые конвейеры, созданные после обновления azure DevOps за сентябрь 2022 г. спринтом 209 г., включены по умолчанию и настроены с глубиной 1. Ранее значение по умолчанию не было мелким получением.

Чтобы проверить конвейер, просмотрите параметр "Мелкое получение " в пользовательском интерфейсе параметров конвейера.

Чтобы отключить неглубокое получение, можно выполнить один из следующих двух вариантов.

Чтобы настроить глубину получения для конвейера, можно задать fetchDepth свойство на шаге или настроить параметр "Мелкое получение" в checkoutпользовательском интерфейсе параметров конвейера.

Замечание

Если вы явно задали fetchDepth на шаге checkout, этот параметр имеет приоритет над параметром, настроенным в пользовательском интерфейсе параметров конвейера. Настройка fetchDepth: 0 извлекает всю историю и переопределяет параметр shallow fetch.

Очистка свойства

clean Если свойство не задано, его значение по умолчанию настраивается с помощью чистого параметра в параметрах пользовательского интерфейса для конвейеров YAML, которое по умолчанию имеет значение true. Помимо доступных вариантов checkoutочистки, можно также настроить очистку в рабочей области. Дополнительные сведения о рабочих областях и параметрах очистки см. в разделе "Задания".

Теги синхронизации

Шаг извлечения использует параметр --tags при получении содержимого репозитория Git. Это приводит к тому, что сервер извлекает все теги, а также все объекты, на которые указывают эти теги. Это увеличивает время выполнения задачи в конвейере, особенно если у вас есть большой репозиторий с рядом тегов. Кроме того, шаг извлечения синхронизирует теги, даже если включить параметр мелкой выборки, тем самым, возможно, победить его назначение. Чтобы уменьшить объем данных, полученных или извлекаемых из репозитория Git, корпорация Майкрософт добавила новый параметр для контроля поведения синхронизации тегов. Этот параметр доступен как в классических, так и в конвейерах YAML.

Можно ли синхронизировать теги при извлечении репозитория в YAML, задав свойство fetchTags и в пользовательском интерфейсе, настроив теги синхронизации .

Чтобы настроить параметр в YAML, задайте свойство fetchTags.

steps:
- checkout: self
  fetchTags: true

Чтобы настроить параметр в пользовательском интерфейсе конвейера, измените конвейер YAML и выберите "Дополнительные действия", "Триггеры", "YamL", " Получить источники" и установить или снять флажок "Теги синхронизации ". Дополнительные сведения см. в разделе "Теги синхронизации".

Поведение по умолчанию

  • Для существующих конвейеров, созданных до выпуска спринта Azure DevOps 209, выпущенного в сентябре 2022 года, значение по умолчанию для синхронизации тегов остается таким же, как и существующее поведение перед добавлением тегов синхронизации, что .
  • Для новых конвейеров, созданных после выпуска спринта Azure DevOps 209, по умолчанию для синхронизации тегов false.

Это важно

Параметр тегов синхронизации true в пользовательском интерфейсе имеет приоритет над оператором fetchTags: false в YAML. Если теги синхронизации имеют значение true в пользовательском интерфейсе, теги синхронизируются, даже если fetchTags задано значение false в YAML.

Примеры

Существует три варианта checkout. По умолчанию Azure DevOps проверяет текущий репозиторий для self заданий. При установке noneрепозиторий не извлекается. Если указать другой репозиторий, этот репозиторий извлекается. Чтобы сначала извлечь другой репозиторий, настройте его в качестве ресурса репозитория.

# Checkout the current repository
steps:
- checkout: self

# Prevent checking out any source code
steps:
- checkout: none

# Checkout a different repository
steps:
- checkout: my-other-repo

Чтобы избежать синхронизации источников, выполните приведенные далее действия.

steps:
- checkout: none

Замечание

Если вы запускаете агент в учетной записи локальной службы и хотите изменить текущий репозиторий с помощью операций git или загрузки подмодулей Git, предоставьте соответствующие разрешения пользователю учетных записей службы сборки коллекции проектов.

- checkout: self
  submodules: true
  persistCredentials: true

Чтобы проверить несколько репозиториев в конвейере, выполните несколько checkout действий.

- checkout: self
- checkout: git://MyProject/MyRepo
- checkout: MyGitHubRepo # Repo declared in a repository resource

Для получения дополнительной информации см. Обзор нескольких репозиториев в вашем конвейере.

См. также