Dela via


steps.checkout-definition

Använd checkout för att konfigurera hur pipelinen checkar ut källkod.

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.

Definitioner som refererar till den här definitionen: steg

Egenskaper

checkout Sträng. Krävs som första egenskap.
Konfigurerar utcheckning för den angivna lagringsplatsen. Ange self, none, lagringsplatsnamn eller lagringsplatsresurs. Mer information finns i Kolla in flera lagringsplatser i din pipeline.

Anteckning

Om det inte finns något checkout steg används standardinställningen self för och nonejobs.job.step.checkout för jobs.deployment.steps.checkout.

checkout Sträng. Krävs som första egenskap.
Om du vill checka ut lagringsplatsen som innehåller den här pipelinedefinitionen eller inte. Ange self eller none.

clean Sträng.
Om det är sant kör du git clean -ffdx följt av git reset --hard HEAD innan du hämtar. true | Falska.

fetchDepth Sträng.
Djupet i Git-grafen som ska hämtas.

fetchTags Sträng.
Ställ in på "true" för att synkronisera taggar när du hämtar lagringsplatsen, eller "false" för att inte synkronisera taggar. Se kommentarer för standardbeteendet.

lfs Sträng.
Ange till "true" för att ladda ned Git-LFS-filer. Standardvärdet är inte att ladda ned dem.

persistCredentials Sträng.
Ställ in på "true" för att lämna OAuth-token i Git-konfigurationen efter den första hämtningen. Standardinställningen är inte att lämna den.

submodules Sträng.
Ange "true" för en enskild nivå av undermoduler eller "rekursiv" för att hämta undermoduler av undermoduler. Standardvärdet är inte att hämta undermoduler.

path Sträng.
Var lagringsplatsen ska placeras. Rotkatalogen är $(Pipeline.Workspace).

condition Sträng.
Utvärdera villkorsuttrycket för att avgöra om den här aktiviteten ska köras.

continueOnErrorbooleskt värde.
Vill du fortsätta köra även vid fel?

displayName Sträng.
Läsbart namn för uppgiften.

targetmål.
Miljö där den här uppgiften ska köras.

enabledbooleskt värde.
Kör du den här uppgiften när jobbet körs?

env strängordlista.
Variabler som ska mappas till processens miljö.

name Sträng.
ID för steget. Acceptabla värden: [-_A-Za-z0-9]*.

timeoutInMinutes Sträng.
Det är dags att vänta tills den här uppgiften har slutförts innan servern avslutar den.

Anteckning

Pipelines kan konfigureras med en tidsgräns på jobbnivå. Om tidsgränsintervallet på jobbnivå förflutit innan steget har slutförts avslutas det jobb som körs (inklusive ditt steg), även om steget har konfigurerats med ett längre timeoutInMinutes intervall. Mer information finns i Timeouter.

retryCountOnTaskFailure Sträng.
Antal återförsök om aktiviteten misslyckas.

Kommentarer

Ytlig hämtning

Viktigt

Nya pipelines som skapats efter uppdateringen av Azure DevOps sprint 209 i september 2022 har Shallow-hämtning aktiverat som standard och konfigurerat med djupet 1. Tidigare var standardinställningen inte ytlig hämtning. Om du vill kontrollera din pipeline visar du inställningen Shallow fetch (Ytlig hämtning ) i användargränssnittet för pipelineinställningar.

Om du vill inaktivera ytlig hämtning kan du utföra något av följande två alternativ.

Om du vill konfigurera hämtningsdjupet för en pipeline kan du antingen ange fetchDepth egenskapen i checkout steget eller konfigurera inställningen Shallow fetch i användargränssnittet för pipelineinställningar.

Anteckning

Om du uttryckligen anger fetchDepth i steget checkout prioriteras den inställningen framför inställningen som konfigureras i användargränssnittet för pipelineinställningar. Inställningen fetchDepth: 0 hämtar all historik och åsidosätter hämtningsinställningen Shallow .

Rensa egenskap

clean Om egenskapen inte har angetts konfigureras standardvärdet av inställningen rensa i UI-inställningarna för YAML-pipelines, som är inställt på true som standard. Förutom det rensningsalternativ som är tillgängligt med kan checkoutdu även konfigurera rensning på en arbetsyta. Mer information om arbetsytor och alternativ för rensning finns i avsnittet om arbetsytor i Jobb.

Synkronisera taggar

I utcheckningssteget --tags används alternativet när innehållet på en Git-lagringsplats hämtas. Detta gör att servern hämtar alla taggar samt alla objekt som pekas på av dessa taggar. Detta ökar tiden för att köra aktiviteten i en pipeline, särskilt om du har en stor lagringsplats med ett antal taggar. Dessutom synkroniserar utcheckningssteget taggar även när du aktiverar alternativet för ytlig hämtning, vilket kan motverka dess syfte. För att minska mängden data som hämtas eller hämtas från en Git-lagringsplats har Microsoft lagt till ett nytt alternativ för att checka ut för att styra beteendet för synkronisering av taggar. Det här alternativet är tillgängligt både i klassiska pipelines och YAML-pipelines.

Om du vill synkronisera taggar när du checkar ut en lagringsplats kan konfigureras i YAML genom att ange fetchTags egenskapen och i användargränssnittet genom att konfigurera inställningen Synkroniseringstaggar .

Om du vill konfigurera inställningen i YAML anger du fetchTags egenskapen .

steps:
- checkout: self
  fetchTags: true

Om du vill konfigurera inställningen i pipelinegränssnittet redigerar du din YAML-pipeline och väljer Fler åtgärder, Utlösare, YAML, Hämta källor och markerar eller avmarkerar kryssrutan Synkronisera taggar . Mer information finns i Synkronisera taggar.

Standardbeteende

  • För befintliga pipelines som skapats före lanseringen av Azure DevOps sprint 209, som släpptes i september 2022, förblir standardinställningen för synkronisering av taggar samma som det befintliga beteendet innan alternativen för synkroniseringstaggar lades till, vilket är true.
  • För nya pipelines som skapats efter Azure DevOps sprint version 209 är falsestandardinställningen för att synkronisera taggar .

Viktigt

Inställningen Synkroniseringstaggar för true i användargränssnittet har företräde framför en fetchTags: false -instruktion i YAML. Om Synkroniseringstaggar är inställda på true i användargränssnittet synkroniseras taggar även om fetchTags har angetts till false i YAML.

Exempel

Så här undviker du alls synkronisering av källor:

steps:
- checkout: none

Anteckning

Om du kör agenten i det lokala tjänstkontot och vill ändra den aktuella lagringsplatsen med hjälp av git-åtgärder eller läsa in git-undermoduler, ger du rätt behörigheter till project collection build service accounts-användaren.

- checkout: self
  submodules: true
  persistCredentials: true

Om du vill checka ut flera lagringsplatser i pipelinen använder du flera checkout steg:

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

Mer information finns i Kolla in flera lagringsplatser i pipelinen.

Se även