Partager via


steps.checkout definition

Utilisez checkout pour configurer la façon dont le pipeline extrait le code source.

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.

Définitions qui font référence à cette définition : étapes

Propriétés

chaîne checkout. Obligatoire en tant que première propriété.
Configure l’extraction pour le référentiel spécifié. Spécifiez self, none, nom de référentielou ressource de référentiel. Pour plus d’informations, consultez Extraire plusieurs référentiels dans votre pipeline.

Remarque

Si aucune étape de checkout n’est présente, elle est par défaut self pour jobs.job.step.checkout et none pour jobs.deployment.steps.checkout.

chaîne clean.
Si la valeur est true, exécutez git clean -ffdx suivie de la réinitialisation git --hard HEAD avant la récupération. true | faux.

chaîne fetchDepth.
profondeur du graphique Git à extraire.

chaîne fetchFilter.
Utilisez fetchFilter pour filtrer l’historique Git pour le clonage partiel. Le paramètre fetchFilter prend en charge les extractions sans arborescence et sans objet blob. Pour une extraction sans arborescence, spécifiez fetchFilter: tree:0 et spécifiez une extraction sans objet blob, spécifiez fetchFilter: blob:none. La valeur par défaut n’est pas de filtrage.

chaîne fetchTags.
défini sur « true » pour synchroniser les balises lors de l’extraction du dépôt, ou « false » pour ne pas synchroniser les balises. Consultez les remarques relatives au comportement par défaut.

chaîne lfs.
défini sur « true » pour télécharger les fichiers Git-LFS. La valeur par défaut n’est pas de les télécharger.

chaîne persistCredentials.
défini sur « true » pour laisser le jeton OAuth dans la configuration Git après la récupération initiale. La valeur par défaut n’est pas de la laisser.

chaîne submodules.
défini sur « true » pour un niveau unique de sous-modules ou « récursif » pour obtenir des sous-modules de sous-modules. La valeur par défaut n’est pas de récupérer les sous-modules.

chaîne path.
Où placer le référentiel. Le répertoire racine est $(Pipeline.Workspace). Par défaut, ce dossier doit se trouver sous la structure du répertoire de travail de l’agent. Pour définir un chemin en dehors du répertoire de travail de l’agent, définissez une variable de pipeline nommée AZP_AGENT_ALLOW_WORK_DIRECTORY_REPOSITORIES sur true et utilisez le préfixe ../ au début de votre chemin d’extraction. Prise en charge sur l’agent version 3.230.0 et ultérieure.

chaîne sparseCheckoutDirectories.
Spécifier un répertoire pour activer l’extraction partiellement alloué en mode cône à l’aide de la correspondance de répertoire. Séparez plusieurs répertoires à l’aide d’un espace. Prise en charge sur l’agent version 3.253.0/4.253.0 et versions ultérieures avec Git 2.25 ou version ultérieure.

- checkout: repo
  sparseCheckoutDirectories: src

Si sparseCheckoutDirectories et sparseCheckoutPatterns sont définis, sparseCheckoutDirectories est utilisé et le paramètre de sparseCheckoutPatterns est ignoré.

Pour plus d’informations sur la caisse éparse, consultez Mettre votre monorepo à la taille avec deséparses.

chaîne sparseCheckoutPatterns.
Spécifier un modèle pour activer l’extraction éparse en mode non cone à l’aide de la correspondance de modèle. Séparez plusieurs modèles à l’aide d’un espace. Prise en charge sur l’agent version 3.253.0/4.253.0 et versions ultérieures avec Git 2.25 ou version ultérieure.

- checkout: repo
  sparseCheckoutPatterns: /* !/img

Si sparseCheckoutDirectories et sparseCheckoutPatterns sont définis, sparseCheckoutDirectories est utilisé et le paramètre de sparseCheckoutPatterns est ignoré.

Pour plus d’informations sur la caisse éparse, consultez Mettre votre monorepo à la taille avec deséparses.

chaîne workspaceRepo.
Lorsque la valeur est true, utilisez le répertoire racine du référentiel comme répertoire de travail par défaut pour le pipeline. La valeur par défaut est false.

chaîne condition.
Évaluer cette expression de condition pour déterminer s’il faut exécuter cette tâche.

continueOnError booléen .
Continuer à s’exécuter même en cas d’échec ?

chaîne displayName.
nom lisible par l’homme pour la tâche.

target cible .
Environnement dans lequel exécuter cette tâche.

enabled booléen .
Exécuter cette tâche lors de l’exécution du travail ?

env dictionnaire de chaînes.
Variables à mapper dans l’environnement du processus.

chaîne name.
ID de l’étape. Valeurs acceptables : [-_A-Za-z0-9]*.

chaîne timeoutInMinutes.
Délai d’attente de cette tâche avant que le serveur ne le tue.

Remarque

Les pipelines peuvent être configurés avec un délai d’expiration au niveau du travail. Si l’intervalle de délai d’expiration du niveau du travail s’écoule avant la fin de votre étape, le travail en cours d’exécution (y compris votre étape) est arrêté, même si l’étape est configurée avec un intervalle de timeoutInMinutes plus long. Pour plus d’informations, consultez délais d’expiration.

chaîne retryCountOnTaskFailure.
Nombre de nouvelles tentatives en cas d’échec de la tâche.

Remarques

Extraction superficielle

Remarque

Dans certaines organisations, les nouveaux pipelines créés après la mise à jour septembre 2022 d’Azure DevOps sprint 209 ont extraction superficielle activée par défaut et configurées avec une profondeur de 1. Auparavant, la valeur par défaut n’était pas d’extraction superficielle.

Pour vérifier votre pipeline, affichez le paramètre de d’extraction peu profond dans l’interface utilisateur des paramètres de pipeline .

Pour désactiver la récupération superficielle, vous pouvez effectuer l’une des deux options suivantes.

  • Désactivez l’option De récupération superficielle dans l’interface utilisateur des paramètres de pipeline .
  • Définissez explicitement fetchDepth: 0 à votre étape de checkout.

Pour configurer la profondeur d’extraction d’un pipeline, vous pouvez définir la propriété fetchDepth à l’étape de checkout, ou configurer le paramètre Extraction superficielle dans l’interface utilisateur des paramètres de pipeline .

Remarque

Si vous définissez explicitement fetchDepth dans votre étape de checkout, ce paramètre prend la priorité sur le paramètre configuré dans l’interface utilisateur des paramètres de pipeline. Le paramètre fetchDepth: 0 récupère l’historique et remplace le paramètre fetch shallow.

Nettoyer la propriété

Si la propriété clean n’est pas définie, sa valeur par défaut est configurée par le paramètre nettoyer dans les paramètres de l’interface utilisateur pour les pipelines YAML, qui est défini sur true par défaut. Outre l’option de nettoyage disponible à l’aide de checkout, vous pouvez également configurer le nettoyage dans un espace de travail. Pour plus d’informations sur les espaces de travail et les options de nettoyage, consultez la rubrique espace de travail dans Travaux.

Balises de synchronisation

L’étape d’extraction utilise l’option --tags lors de l’extraction du contenu d’un dépôt Git. Cela entraîne l’extraction de toutes les balises ainsi que tous les objets pointés par ces balises. Cela augmente le temps d’exécution de la tâche dans un pipeline, en particulier si vous avez un grand référentiel avec un certain nombre de balises. En outre, l’étape d’extraction synchronise les balises même lorsque vous activez l’option d’extraction superficielle, ce qui peut vaincre son objectif. Pour réduire la quantité de données extraites ou extraites d’un référentiel Git, Microsoft a ajouté une nouvelle option pour contrôler le comportement des balises de synchronisation. Cette option est disponible à la fois dans les pipelines CLASSIQUES et YAML.

Indique si vous souhaitez synchroniser des balises lors de la vérification d’un référentiel dans YAML en définissant la propriété fetchTags et dans l’interface utilisateur en configurant les balises de synchronisation paramètre.

Pour configurer le paramètre dans YAML, définissez la propriété fetchTags.

steps:
- checkout: self
  fetchTags: true

Pour configurer le paramètre dans l’interface utilisateur du pipeline, modifiez votre pipeline YAML et choisissez Autres actions, Déclencheurs, YAML, Obtenir des sources, puis cochez ou décochez la case Synchroniser les balises. Pour plus d’informations, consultez balises de synchronisation.

Comportement par défaut

  • Pour les pipelines existants créés avant la publication de sprint Azure DevOps 209, publié en septembre 2022, la valeur par défaut pour la synchronisation des balises reste identique au comportement existant avant l’ajout des étiquettes de synchronisation options de synchronisation, qui est true.
  • Pour les nouveaux pipelines créés après la version sprint d’Azure DevOps 209, la valeur par défaut pour la synchronisation des balises est false.

Important

Les balises de synchronisation paramètre true dans l’interface utilisateur sont prioritaires sur une instruction fetchTags: false dans yaML. Si balises de synchronisation a la valeur true dans l’interface utilisateur, les balises sont synchronisées même si fetchTags a la valeur false dans yaML.

Exemples

Il existe trois options pour checkout. Par défaut, Azure DevOps extrait le référentiel actuel avec self pour les travaux. Lorsque vous définissez none, aucun référentiel n’est extrait. Si vous spécifiez un autre référentiel, ce référentiel est extrait. Pour extraire un autre référentiel, configurez-le en tant que ressource de référentiel d’abord.

# 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

Pour éviter la synchronisation des sources du tout :

steps:
- checkout: none

Remarque

Si vous exécutez l’agent dans le compte de service local et que vous souhaitez modifier le référentiel actuel à l’aide d’opérations git ou de chargement de sous-modules Git, accordez les autorisations appropriées à l’utilisateur des comptes de service de génération de regroupement de projets.

- checkout: self
  submodules: true
  persistCredentials: true

Pour extraire plusieurs référentiels dans votre pipeline, utilisez plusieurs étapes checkout :

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

Pour plus d’informations, consultez Extraire plusieurs référentiels dans votre pipeline.

Voir aussi