Compartilhar via


definição steps.checkout

Use checkout para configurar como o pipeline verifica o código-fonte.

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.

Definições que fazem referência a essa definição: etapas

Propriedades

checkout cadeia de caracteres. Obrigatório como primeira propriedade.
Configura o check-out do repositório especificado. Especifique self, none, nome do repositórioou de recursos do repositório. Para obter mais informações, consulte Confira vários repositórios em seu pipeline.

Nota

Se nenhuma etapa checkout estiver presente, o padrão será self para jobs.job.step.checkout e none para jobs.deployment.steps.checkout.

clean cadeia de caracteres.
Se verdadeiro, execute o git clean -ffdx seguido por git reset --hard HEAD antes de buscar. true | falso.

fetchDepth cadeia de caracteres.
Profundidade do grafo git a ser buscado.

fetchFilter cadeia de caracteres.
Usar fetchFilter para filtrar o histórico do Git para clonagem parcial. A configuração de fetchFilter dá suporte a buscas sem árvore e blobless. Para uma busca sem árvore, especifique fetchFilter: tree:0 e especifique uma busca de blobless, especifique fetchFilter: blob:none. O padrão não é filtragem.

fetchTags cadeia de caracteres.
Definido como 'true' para sincronizar marcas ao buscar o repositório ou 'false' para não sincronizar marcas. Consulte comentários sobre o comportamento padrão.

lfs cadeia de caracteres.
Definir como 'true' para baixar arquivos Git-LFS. O padrão não é baixá-los.

persistCredentials cadeia de caracteres.
Definido como 'true' para deixar o token OAuth na configuração do Git após a busca inicial. O padrão é não deixá-lo.

submodules cadeia de caracteres.
Definido como 'true' para um único nível de submódulos ou 'recursivo' para obter submodules de submodules. O padrão não é buscar submódulos.

path cadeia de caracteres.
Onde colocar o repositório. O diretório raiz é $(Pipeline.Workspace). Por padrão, essa pasta deve estar na estrutura do diretório de trabalho do agente. Para definir um caminho fora do diretório de trabalho do agente, defina uma variável de pipeline chamada AZP_AGENT_ALLOW_WORK_DIRECTORY_REPOSITORIES como true e use o prefixo ../ no início do caminho de check-out. Compatível com o agente versão 3.230.0 e superior.

sparseCheckoutDirectories cadeia de caracteres.
Especificar um diretório para habilitar o check-out esparso no modo cone usando a correspondência de diretório. Separe vários diretórios usando um espaço. Compatível com o agente versão 3.253.0/4.253.0 e superior com Git 2.25 ou superior.

- checkout: repo
  sparseCheckoutDirectories: src

Se sparseCheckoutDirectories e sparseCheckoutPatterns estiverem definidos, sparseCheckoutDirectories será usado e a configuração para sparseCheckoutPatterns será desconsiderada.

Para obter mais informações sobre o check-out esparso, consulte Reduzir o tamanho do monorepo comde check-out esparso.

sparseCheckoutPatterns cadeia de caracteres.
Especifique um padrão para habilitar o check-out esparso no modo não cone usando a correspondência de padrões. Separe vários padrões usando um espaço. Compatível com o agente versão 3.253.0/4.253.0 e superior com Git 2.25 ou superior.

- checkout: repo
  sparseCheckoutPatterns: /* !/img

Se sparseCheckoutDirectories e sparseCheckoutPatterns estiverem definidos, sparseCheckoutDirectories será usado e a configuração para sparseCheckoutPatterns será desconsiderada.

Para obter mais informações sobre o check-out esparso, consulte Reduzir o tamanho do monorepo comde check-out esparso.

workspaceRepo cadeia de caracteres.
Quando verdadeiro, use o diretório raiz do repositório como o diretório de trabalho padrão para o pipeline. O padrão é false.

condition cadeia de caracteres.
Avaliar essa expressão de condição para determinar se essa tarefa deve ser executada.

continueOnError booliano.
Continuar em execução mesmo em caso de falha?

displayName cadeia de caracteres.
nome legível para a tarefa.

target de destino.
Ambiente no qual executar essa tarefa.

enabled booliano.
executar essa tarefa quando o trabalho for executado?

env dicionário de cadeias de caracteres.
variáveis a serem mapeadas para o ambiente do processo.

name cadeia de caracteres.
ID da etapa. Valores aceitáveis: [-_A-Za-z0-9]*.

timeoutInMinutes cadeia de caracteres.
hora de aguardar a conclusão dessa tarefa antes que o servidor a mate.

Nota

Os pipelines podem ser configurados com um tempo limite de nível de trabalho. Se o intervalo de tempo limite do nível do trabalho se esgotar antes da conclusão da etapa, o trabalho em execução (incluindo a etapa) será encerrado, mesmo que a etapa esteja configurada com um intervalo de timeoutInMinutes mais longo. Para obter mais informações, consulte Timeouts.

retryCountOnTaskFailure cadeia de caracteres.
Número de repetições se a tarefa falhar.

Observações

  • de busca superficial
  • de propriedade Clean

Busca superficial

Nota

Em algumas organizações, novos pipelines criados após o atualização do Azure DevOps sprint 209 de setembro de 2022 têm de busca superficial habilitadas por padrão e configuradas com uma profundidade de 1. Anteriormente, o padrão não era buscar superficialmente.

Para verificar o pipeline, exiba a configuração de de busca superficial na interface do usuário das configurações de pipeline .

Para desabilitar a busca superficial, você pode executar uma das duas opções a seguir.

Para configurar a profundidade de busca para um pipeline, você pode definir a propriedade fetchDepth na etapa checkout ou definir a configuração de de busca do Shallow na interface do usuário das configurações de pipeline .

Nota

Se você definir explicitamente fetchDepth na etapa checkout, essa configuração tem prioridade sobre a configuração definida na interface do usuário das configurações do pipeline. A configuração fetchDepth: 0 busca todo o histórico e substitui a configuração de busca superficial.

Propriedade Clean

Se a propriedade clean não for definida, seu valor padrão será configurado pela configuração de limpa nas configurações da interface do usuário para pipelines YAML, que é definida como true por padrão. Além da opção de limpeza disponível usando checkout, você também pode configurar a limpeza em um workspace. Para obter mais informações sobre workspaces e opções limpas, consulte o tópico do workspace no trabalhos do.

Marcas de sincronização

A etapa de check-out usa a opção --tags ao buscar o conteúdo de um repositório Git. Isso faz com que o servidor busque todas as marcas, bem como todos os objetos apontados por essas marcas. Isso aumenta o tempo para executar a tarefa em um pipeline, especialmente se você tiver um repositório grande com várias marcas. Além disso, a etapa de check-out sincroniza marcas mesmo quando você habilita a opção de busca superficial, possivelmente derrotando sua finalidade. Para reduzir a quantidade de dados buscados ou extraídos de um repositório Git, a Microsoft adicionou uma nova opção para fazer check-out para controlar o comportamento das marcas de sincronização. Essa opção está disponível em pipelines clássicos e YAML.

Se é necessário sincronizar marcas ao fazer check-out de um repositório pode ser configurado no YAML definindo a propriedade fetchTags e na interface do usuário configurando as marcas de sincronização configuração.

Para definir a configuração no YAML, defina a propriedade fetchTags.

steps:
- checkout: self
  fetchTags: true

Para definir a configuração na interface do usuário do pipeline, edite seu pipeline YAML e escolha Mais ações, Gatilhos, YAML, Obter fontese marque ou desmarque as marcas de Sincronização caixa de seleção. Para obter mais informações, consulte Marcas de sincronização.

Comportamento padrão

  • Para pipelines existentes criados antes do lançamento do Azure DevOps sprint 209, lançado em setembro de 2022, o padrão para sincronizar marcas permanece o mesmo que o comportamento existente antes que as marcas de Sincronização opções sejam adicionadas, o que é true.
  • Para novos pipelines criados após a versão de sprint do Azure DevOps 209, o padrão para sincronizar marcas é false.

Importante

Uma Sincronização marca configuração de true na interface do usuário tem precedência sobre uma instrução fetchTags: false no YAML. Se marcas de sincronização for definida como true na interface do usuário, as marcas serão sincronizadas mesmo que fetchTags esteja definida como false no YAML.

Exemplos

Há três opções para checkout. Por padrão, o Azure DevOps verifica o repositório atual com self para trabalhos. Quando você define none, nenhum repositório é verificado. Se você especificar outro repositório, esse repositório será verificado. Para conferir um repositório diferente, configure-o como um recurso de repositório primeiro.

# 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 sincronizar fontes:

steps:
- checkout: none

Nota

Se você estiver executando o agente na conta de Serviço Local e quiser modificar o repositório atual usando operações git ou carregando submódulos git, forneça as permissões adequadas para o usuário de Contas de Serviço de Build de Coleção de Projetos.

- checkout: self
  submodules: true
  persistCredentials: true

Para fazer check-out de vários repositórios em seu pipeline, use várias etapas de checkout:

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

Para obter mais informações, consulte Confira vários repositórios em seu pipeline.

Consulte também