definición steps.checkout
Use checkout
para configurar cómo la canalización extrae el código fuente.
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.
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
, nombre del repositorioo recurso del repositorio. Para obtener más información, consulte Consulte varios repositorios en la canalización.
Nota
Si no hay ningún paso checkout
presente, el valor predeterminado es self
para jobs.job.step.checkout
y none
para jobs.deployment.steps.checkout
.
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.
fetchFilter
cadena.
Use fetchFilter
para filtrar el historial de Git para la clonación parcial. La configuración de fetchFilter
admite capturas sin árbol y blobles. Para una captura sin árbol, especifique fetchFilter: tree:0
y para especificar una captura de blobles, especifique fetchFilter: blob:none
. El valor predeterminado no es ningún filtrado.
fetchTags
cadena.
Establezca en "true" para sincronizar etiquetas al capturar el repositorio o "false" para no sincronizar etiquetas. Consulte los comentarios sobre el comportamiento predeterminado.
lfs
cadena.
Establezca 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.
Establecer en "true" para un único nivel de submódulos o "recursivos" 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). De forma predeterminada, esta carpeta debe estar en la estructura del directorio de trabajo del agente. Para establecer una ruta de acceso fuera del directorio de trabajo del agente, establezca una variable de canalización denominada AZP_AGENT_ALLOW_WORK_DIRECTORY_REPOSITORIES
en true y use el prefijo ../
al principio de la ruta de acceso de desprotección. Compatible con la versión 3.230.0 del agente y versiones posteriores.
sparseCheckoutDirectories
cadena.
Especifique un directorio para habilitar la desprotección dispersa en modo cono mediante la coincidencia de directorios. Separe varios directorios mediante un espacio.
- checkout: repo
sparseCheckoutDirectories: src
Si se establecen sparseCheckoutDirectories
y sparseCheckoutPatterns
, se usa sparseCheckoutDirectories
y se ignora la configuración de sparseCheckoutPatterns
.
Para obtener más información sobre la desprotección dispersa, consulte Reducir el tamaño del monorepo condisperso-checkout .
sparseCheckoutPatterns
cadena.
Especifique un patrón para habilitar la desprotección dispersa en modo no cono mediante la coincidencia de patrones. Separe varios patrones mediante un espacio.
- checkout: repo
sparseCheckoutPatterns: /* !/img
Si se establecen sparseCheckoutDirectories
y sparseCheckoutPatterns
, se usa sparseCheckoutDirectories
y se ignora la configuración de sparseCheckoutPatterns
.
Para obtener más información sobre la desprotección dispersa, consulte Reducir el tamaño del monorepo condisperso-checkout .
workspaceRepo
cadena.
Cuando es true, use el directorio raíz del repositorio como directorio de trabajo predeterminado para la canalización. El valor predeterminado es false.
condition
cadena.
Evaluar esta expresión de condición para determinar si se debe ejecutar esta tarea.
displayName
cadena.
nombre legible para la tarea.
env
diccionario de cadenas.
variables que se van a asignar al entorno del proceso.
name
cadena.
identificador del paso. Valores aceptables: [-_A-Za-z0-9]*.
timeoutInMinutes
cadena.
Tiempo de espera para que se complete esta tarea antes de que el servidor lo mate.
Nota
Las canalizaciones se pueden configurar con un tiempo de espera de nivel de trabajo. Si el intervalo de tiempo de espera del 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 de timeoutInMinutes
más largo. 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
Captura superficial
Nota
En algunas organizaciones, las nuevas canalizaciones creadas después del actualización de sprint 2022 de Azure DevOps 209 tienen captura superficial habilitada de forma predeterminada y configurada con una profundidad de 1. Anteriormente, el valor predeterminado no era capturar superficialmente.
Para comprobar la canalización, vea la configuración de captura superficial en la interfaz de usuario de configuración de canalización de .
Para deshabilitar la captura superficial, puede realizar una de las dos opciones siguientes.
- Deshabilite la opción de captura superficial en la interfaz de usuario de configuración de canalización de .
- Establezca explícitamente
fetchDepth: 0
en el paso decheckout
.
Para configurar la profundidad de captura de una canalización, puede establecer la propiedad fetchDepth
en el paso checkout
o configurar la configuración de captura superficial en la interfaz de usuario de configuración de canalización de .
Nota
Si establece explícitamente fetchDepth
en el paso de checkout
, esa configuración tiene prioridad sobre la configuración configurada en la interfaz de usuario de configuración de canalización. Al establecer fetchDepth: 0
captura todo el historial e invalida la configuración de captura superficial .
Clean (propiedad)
Si la propiedad clean
no está establecida, el valor predeterminado se configura mediante la configuración de limpiar 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.
Etiquetas de sincronización
El paso de desprotección usa la opción --tags
al capturar el contenido de un repositorio de Git. Esto hace que el servidor capture 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 desprotección sincroniza las etiquetas incluso cuando se habilita la opción de captura superficial, lo que posiblemente derrota su propósito. Para reducir la cantidad de datos capturados o extraídos de un repositorio de Git, Microsoft ha agregado una nueva opción para desproteger para 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 desprotegar un repositorio en YAML estableciendo la propiedad fetchTags
y en la interfaz de usuario configurando las etiquetas de Sincronizar configuració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 la canalización, edite la canalización de YAML y elija Más acciones, desencadenadores, YAML, Obtener orígenesy active o desactive la casilla Etiquetas de sincronización de. Para obtener más información, consulte Etiquetas de sincronización.
Comportamiento predeterminado
- En el caso de las canalizaciones existentes creadas antes del lanzamiento de sprint de Azure DevOps 209, publicada en septiembre de 2022, el valor predeterminado de las etiquetas de sincronización sigue siendo el mismo que el comportamiento existente antes de que se agregaron las etiquetas de sincronización opciones, que es
true
. - En el caso de las nuevas canalizaciones creadas después de la versión de sprint de Azure DevOps 209, el valor predeterminado de las etiquetas de sincronización es
false
.
Importante
Una configuración de etiquetas sync de true en la interfaz de usuario tiene prioridad sobre una instrucción fetchTags: false
en YAML. Si etiquetas de sincronización se establece en true en la interfaz de usuario, las etiquetas se sincronizan incluso si fetchTags
se establece en false en YAML.
Ejemplos
Hay tres opciones para checkout
. De forma predeterminada, Azure DevOps extrae el repositorio actual con self
para trabajos. Al establecer none
, no se desprotegió ningún repositorio. Si especifica otro repositorio, ese repositorio se desprotegió. Para desactive un repositorio diferente, establézcalo como un recurso de repositorio de primero.
# 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
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 quiere modificar el repositorio actual mediante operaciones de Git o carga de submódulos de Git, conceda los permisos adecuados al usuario cuentas de servicio de compilación de colecciones de proyectos.
- checkout: self
submodules: true
persistCredentials: true
Para consultar varios repositorios en la canalización, siga varios pasos de checkout
:
- checkout: self
- checkout: git://MyProject/MyRepo
- checkout: MyGitHubRepo # Repo declared in a repository resource
Para obtener más información, consulte Consulte varios repositorios en la canalización.