Partilhar via


definição de steps.checkout

Use checkout para configurar como o pipeline faz check-out do 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 esta definição: etapas

Propriedades

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

Observação

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

clean string.
Se verdadeiro, execute o git clean -ffdx seguido pelo git reset --hard HEAD antes de buscar. verdadeiro | falso.

fetchDepth string.
Profundidade do gráfico Git para buscar.

fetchFilter string.
Use fetchFilter para filtrar o histórico do Git para clonagem parcial. A configuração fetchFilter suporta buscas sem árvores e sem blob. Para uma busca sem árvore, especifique fetchFilter: tree:0 e, para especificar uma busca sem blob, especifique fetchFilter: blob:none. O padrão é sem filtragem.

fetchTags string.
Defina como 'true' para sincronizar tags ao buscar o repo, ou 'false' para não sincronizar tags. Consulte comentários para o comportamento padrão.

lfs string.
Defina como 'true' para descarregar ficheiros Git-LFS. O padrão não é baixá-los.

persistCredentials string.
Defina 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 string.
Defina como 'true' para um único nível de submódulos ou 'recursivo' para obter submódulos de submódulos. O padrão é não buscar submódulos.

path string.
Onde colocar o repositório. O diretório raiz é $(Pipeline.Workspace). Por padrão, essa pasta deve estar sob a estrutura de diretórios 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 checkout. Suportado na versão 3.230.0 e superior do agente.

sparseCheckoutDirectories string.
Especifique 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.

- checkout: repo
  sparseCheckoutDirectories: src

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

Para obter mais informações sobre checkout esparso, consulte Reduza seu monorepo ao tamanho comde checkout esparso.

sparseCheckoutPatterns string.
Especifique um padrão para habilitar o check-out esparso no modo sem cone usando a correspondência de padrões. Separe vários padrões usando um espaço.

- checkout: repo
  sparseCheckoutPatterns: /* !/img

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

Para obter mais informações sobre checkout esparso, consulte Reduza seu monorepo ao tamanho comde checkout esparso.

workspaceRepo string.
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 string.
Avalie essa expressão de condição para determinar se essa tarefa deve ser executada.

continueOnError booleano.
Continuar a correr mesmo em caso de falha?

displayName string.
Nome legível por humanos para a tarefa.

target alvo.
Ambiente no qual executar esta tarefa.

enabled booleano.
Executar esta tarefa quando o trabalho é executado?

env dicionário de cordas.
Variáveis a serem mapeadas no ambiente do processo.

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

timeoutInMinutes string.
Tempo para esperar que esta tarefa seja concluída antes que o servidor a mate.

Observação

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 decorrer 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 maior. Para obter mais informações, consulte Tempos limite.

retryCountOnTaskFailure string.
Número de novas tentativas se a tarefa falhar.

Comentários

Busca rasa

Observação

Em algumas organizações, os novos pipelines criados após a atualização do sprint 209 do Azure DevOps de de setembro de 2022 ter busca superficial habilitados por padrão e configurados com uma profundidade de 1. Anteriormente, o padrão era não buscar superficialmente.

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

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

  • Desative a opção de busca superficial na interface do usuário de configurações de pipeline .
  • Defina explicitamente fetchDepth: 0 no seu checkout passo.

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

Observação

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

Propriedade limpa

Se a propriedade clean estiver desdefinida, seu valor padrão será configurado pela configuração limpo 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 espaço de trabalho. Para obter mais informações sobre espaços de trabalho e opções de limpeza, consulte o tópico espaço de trabalho em Jobs.

Sincronizar tags

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

A sincronização de tags ao fazer check-out de um repositório pode ser configurada no YAML definindo a propriedade fetchTags e na interface do usuário configurando a configuração tags Sync.

Para definir a configuração em 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, Triggers, YAML, Obter fontese marque ou desmarque a caixa de seleção Sincronizar marcações. Para obter mais informações, consulte Sincronizar tags.

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 tags permanece o mesmo que o comportamento existente antes da adição das opções de de tags Sync, que é true.
  • Para novos pipelines criados após a versão 209 do sprint do Azure DevOps, o padrão para sincronizar marcas é false.

Importante

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

Exemplos

Existem 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 é submetido a check-out. Se você especificar outro repositório, será feito check-out desse repositório. Para fazer check-out de 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 a sincronização de fontes:

steps:
- checkout: none

Observação

Se você estiver executando o agente na conta Serviço Local e quiser modificar o repositório atual usando operações git ou carregando submódulos git, conceda as permissões adequadas ao usuário Contas de Serviço de Compilação 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 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.

Ver também