definición steps.checkout

Use checkout para configurar cómo la canalización desvía el código fuente.

steps:
- checkout: string # Required as first property. Configures checkout for the specified repository.
  clean: string # 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: string # 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: string # 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.
steps:
- checkout: string # Required as first property. Whether or not to check out the repository containing this pipeline definition.
  clean: string # 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.
  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.
steps:
- checkout: string # Required as first property. Whether or not to check out the repository containing this pipeline definition.
  clean: string # 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.
  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.
  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.

Definiciones que hacen referencia a esta definición: pasos

Propiedades

checkout Cadena. Obligatorio como primera propiedad.
Configura la desprotección del repositorio especificado. Especifique self, none, el nombre del repositorio o el recurso del repositorio. Para obtener más información, consulte Restauración de repositorios múltiples en la canalización.

Nota

Si no hay ningún checkout paso presente, el valor predeterminado es self para jobs.job.step.checkout y none para jobs.deployment.steps.checkout.

checkout Cadena. Obligatorio como primera propiedad.
Si se va a desactive o no el repositorio que contiene esta definición de canalización. Indique self o none.

clean Cadena.
Si es true, ejecute git clean -ffdx seguido de git reset --hard HEAD antes de capturar. true | Falso.

fetchDepth Cadena.
Profundidad del grafo de Git que se va a capturar.

fetchTags Cadena.
Establézcalo en "true" para sincronizar etiquetas al capturar el repositorio o "false" para no sincronizar etiquetas. Consulte los comentarios para obtener el comportamiento predeterminado.

lfs Cadena.
Establézcalo en "true" para descargar archivos git-LFS. El valor predeterminado no es descargarlos.

persistCredentials Cadena.
Establezca en "true" para dejar el token de OAuth en la configuración de Git después de la captura inicial. El valor predeterminado no es dejarlo.

submodules Cadena.
Establézcalo en "true" para un único nivel de submódulos o "recursivo" para obtener submódulos de submódulos. El valor predeterminado no es capturar submódulos.

path Cadena.
Dónde colocar el repositorio. El directorio raíz es $(Pipeline.Workspace).

condition Cadena.
Evalúe esta expresión de condición para determinar si se va a ejecutar esta tarea.

continueOnErrorbooleano.
¿Sigue ejecutándose incluso en caso de error?

displayName Cadena.
Nombre legible de la tarea.

targettarget.
Entorno en el que se va a ejecutar esta tarea.

enabledbooleano.
¿Ejecuta esta tarea cuando se ejecuta el trabajo?

env diccionario de cadenas.
Variables que se van a asignar al entorno del proceso.

name Cadena.
Id. del paso. Valores aceptables: [-_A-Za-z0-9]*.

timeoutInMinutes Cadena.
Tiempo para esperar a que esta tarea se complete antes de que el servidor la mate.

Nota

Las canalizaciones se pueden configurar con un tiempo de espera de nivel de trabajo. Si el intervalo de tiempo de espera de nivel de trabajo transcurre antes de que se complete el paso, se finaliza el trabajo en ejecución (incluido el paso), incluso si el paso está configurado con un intervalo más largo timeoutInMinutes . Para obtener más información, vea Tiempos de espera.

retryCountOnTaskFailure Cadena.
Número de reintentos si se produce un error en la tarea.

Observaciones

Recuperación de cambios superficiales

Importante

Las nuevas canalizaciones creadas después de la actualización de sprint 209 de septiembre de 2022 de Azure DevOps tienen habilitada la recuperación de cambios superficiales de forma predeterminada y configurada con una profundidad de 1. Anteriormente, el valor predeterminado no era la recuperación de cambios superficiales. Para comprobar la canalización, vea la configuración captura superficial en la interfaz de usuario de configuración de la canalización.

Para deshabilitar la captura superficial, puede realizar una de las dos opciones siguientes.

Para configurar la profundidad de captura de una canalización, puede establecer la fetchDepth propiedad en el checkout paso o configurar el valor captura superficial en la interfaz de usuario de configuración de canalización.

Nota

Si establece fetchDepth explícitamente en el paso checkout, esa configuración tiene prioridad sobre la configuración de la interfaz de usuario de configuración de canalización. Al establecer fetchDepth: 0 se recupera todo el historial y se invalida la configuración derecuperación de cambios superficiales.

Clean (propiedad)

Si la clean propiedad no está establecida, el valor predeterminado se configura mediante la configuración de limpieza en la configuración de la interfaz de usuario para canalizaciones YAML, que se establece en true de forma predeterminada. Además de la opción de limpieza disponible mediante checkout, también puede configurar la limpieza en un área de trabajo. Para obtener más información sobre las áreas de trabajo y las opciones limpias, consulte el tema área de trabajo en Trabajos.

Sincronizar etiquetas

El paso de restauración usa la opción --tags de recuperar el contenido de un repositorio de Git. Esto hace que el servidor recupere todas las etiquetas, así como todos los objetos a los que apuntan esas etiquetas. Esto aumenta el tiempo para ejecutar la tarea en una canalización, especialmente si tiene un repositorio grande con una serie de etiquetas. Además, el paso de restauración sincroniza las etiquetas incluso cuando se habilita la opción de recuperación superficial, lo que posiblemente acaba con su propósito. Para reducir la cantidad de datos recuperados o extraídos de un repositorio de Git, Microsoft ha agregado una nueva opción para restaurar y controlar el comportamiento de las etiquetas de sincronización. Esta opción está disponible tanto en canalizaciones clásicas como en YAML.

Si desea sincronizar etiquetas al restaurar un repositorio, se puede configurar en YAML estableciendo la propiedad fetchTags y en la interfaz de usuario mediante la configuración de etiquetas de sincronización.

Para configurar el valor en YAML, establezca la propiedad fetchTags.

steps:
- checkout: self
  fetchTags: true

Para configurar la configuración en la interfaz de usuario de canalización, edite la canalización de YAML y elija Más acciones, Desencadenadores, YAML, Obtener orígenes y active o desactive la casilla Etiquetas de sincronización . Para más información, consulte Etiquetas de sincronización.

Comportamiento predeterminado

  • En el caso de las canalizaciones existentes creadas antes del lanzamiento del sprint 209 de Azure DevOps, publicada en septiembre de 2022, el valor predeterminado de las etiquetas de sincronización sigue siendo el mismo que el comportamiento existente antes de agregar las opciones de etiquetas de sincronización, que es true.
  • En el caso de las nuevas canalizaciones creadas después del sprint 209 de Azure DevOps, el valor predeterminado de las etiquetas de sincronización es false.

Importante

Una configuración de etiquetas de sincronización de true en la interfaz de usuario tiene prioridad sobre una fetchTags: false instrucción de YAML. Si las etiquetas de sincronización se establecen en true en la interfaz de usuario, las etiquetas se sincronizan incluso si fetchTags se establece en false en YAML.

Ejemplos

Para evitar la sincronización de orígenes en absoluto:

steps:
- checkout: none

Nota

Si ejecuta el agente en la cuenta de servicio local y desea modificar el repositorio actual mediante operaciones de Git o carga de submódulos de Git, conceda los permisos adecuados al usuario de cuentas de servicio de compilación de colecciones de proyectos.

- checkout: self
  submodules: true
  persistCredentials: true

Para restaurar varios repositorios de la canalización, siga varios pasos checkout:

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

Para obtener más información, consulte Restauración de repositorios múltiples en la canalización.

Consulte también