Dela via


steps.checkout-definition

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

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.

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, lagringsplatsnamneller lagringsplatsresurs. Mer information finns i Checka ut flera lagringsplatser i pipelinen.

Not

Om det inte finns något checkout steg self standard för jobs.job.step.checkout och none för jobs.deployment.steps.checkout.

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

fetchDepth sträng.
Djup för Git-grafen som ska hämtas.

fetchFilter sträng.
Använd fetchFilter för att filtrera Git-historik för partiell kloning. Inställningen fetchFilter stöder trädlösa och bloblösa hämtningar. För en trädlös hämtning anger du fetchFilter: tree:0 och anger en bloblös hämtning genom att ange fetchFilter: blob:none. Standardvärdet är ingen filtrering.

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.
Ställ in på "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. Standardvärdet är att inte lämna det.

submodules sträng.
Ställ in på "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). Som standard måste den här mappen vara under agentens arbetskatalogstruktur. Om du vill ange en sökväg utanför agentens arbetskatalog anger du en pipelinevariabel med namnet AZP_AGENT_ALLOW_WORK_DIRECTORY_REPOSITORIES till true och använder prefixet ../ i början av din utcheckningssökväg. Stöds på agentversion 3.230.0 och senare.

sparseCheckoutDirectories sträng.
Ange en katalog för att aktivera gles utcheckning i konläge med hjälp av katalogmatchning. Avgränsa flera kataloger med ett blanksteg. Stöds på agentversion 3.253.0/4.253.0 och senare med Git 2.25 eller senare.

- checkout: repo
  sparseCheckoutDirectories: src

Om både sparseCheckoutDirectories och sparseCheckoutPatterns anges används sparseCheckoutDirectories och inställningen för sparseCheckoutPatterns ignoreras.

Mer information om gles utcheckning finns i Bring your monorepo down to size with sparse-checkout.

sparseCheckoutPatterns sträng.
Ange ett mönster för att aktivera gles utcheckning i icke-konläge med hjälp av mönstermatchning. Avgränsa flera mönster med ett blanksteg. Stöds på agentversion 3.253.0/4.253.0 och senare med Git 2.25 eller senare.

- checkout: repo
  sparseCheckoutPatterns: /* !/img

Om både sparseCheckoutDirectories och sparseCheckoutPatterns anges används sparseCheckoutDirectories och inställningen för sparseCheckoutPatterns ignoreras.

Mer information om gles utcheckning finns i Bring your monorepo down to size with sparse-checkout.

workspaceRepo sträng.
När sant använder du lagringsplatsens rotkatalog som standardarbetskatalog för pipelinen. Standardvärdet är falskt.

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

continueOnError boolesk.
Vill du fortsätta köra även vid fel?

displayName sträng.
läsbart namn för aktiviteten.

target mål.
miljö där den här uppgiften ska köras.

enabled boolesk.
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. Godtagbara värden: [-_A-Za-z0-9]*.

timeoutInMinutes sträng.
Tid att vänta tills den här uppgiften har slutförts innan servern avslutar den.

Not

Pipelines kan konfigureras med en tidsgräns på jobbnivå. Om tidsgränsintervallet på jobbnivå förflutit innan steget slutförs 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.

Anmärkningar

Ytlig hämtning

Not

I vissa organisationer har nya pipelines som skapats efter uppdateringen september 2022 Azure DevOps sprint 209Shallow fetch- aktiverat som standard och konfigurerats med ett djup på 1. Tidigare var standardvärdet inte för ytlig hämtning.

Om du vill kontrollera pipelinen visar du inställningen Shallow fetch 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.

  • Inaktivera alternativet Shallow fetch i användargränssnittet för pipelineinställningar.
  • Ange uttryckligen fetchDepth: 0 i ditt checkout steg.

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

Not

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

Rensa egenskap

Om egenskapen clean 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 checkoutkan du även konfigurera rensning på en arbetsyta. Mer information om arbetsytor och rena alternativ finns i avsnittet arbetsyta i Jobb.

Synkroniseringstaggar

I utcheckningssteget används alternativet --tags 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 det grunda hämtningsalternativet, vilket möjligen kan besegra 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 kontrollera beteendet för synkroniseringstaggar. Det här alternativet är tillgängligt både i klassiska pipelines och YAML-pipelines.

Om du vill konfigurera om du vill synkronisera taggar när du checkar ut en lagringsplats kan du antingen ange fetchTags egenskapen i checkout steget eller konfigurera inställningen Synkronisera taggar i användargränssnittet för pipelineinställningar.

Not

Om du uttryckligen anger fetchTags i checkout steget prioriteras den inställningen framför inställningen Synkronisera taggar som konfigurerats i användargränssnittet för pipelineinställningar.

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

steps:
- checkout: self
  fetchTags: true

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

Standardbeteendet

  • För befintliga pipelines som skapades före lanseringen av Azure DevOps sprint 209, som släpptes i september 2022, förblir standardvärdet för synkroniseringstaggar detsamma som det befintliga beteendet innan Sync-taggarna alternativ lades till, vilket är true.
  • För nya pipelines som skapats efter Azure DevOps sprint version 209 är standardinställningen för synkroniseringstaggar false.

Exempel

Det finns tre alternativ för checkout. Som standard checkar Azure DevOps ut den aktuella lagringsplatsen med self för jobb. När du anger nonecheckas ingen lagringsplats ut. Om du anger en annan lagringsplats checkas den lagringsplatsen ut. Om du vill kolla in en annan lagringsplats konfigurerar du den som en lagringsplatsresurs först.

# 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

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

steps:
- checkout: none

Not

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 Checka ut flera lagringsplatser i pipelinen.

Se även