Compartilhar via


Criar repositórios locais do Bitbucket

Azure DevOps Services

Observação

Para integrar o Bitbucket Cloud ao Azure Pipelines, consulte Bitbucket Cloud.

Você pode integrar seu servidor Bitbucket local ou outro servidor Git ao Azure Pipelines. Seu servidor local pode ser exposto à Internet ou pode não ser.

Se o servidor local estiver acessível nos servidores que executam o serviço do Azure Pipelines, então:

  • você pode configurar o build clássico e configurar gatilhos de CI

Se o servidor local não estiver acessível nos servidores que executam o serviço do Azure Pipelines, então:

  • você pode configurar pipelines de build clássicos e iniciar builds manuais
  • você não pode configurar gatilhos de CI

Observação

Os pipelines YAML não funcionam com repositórios locais do Bitbucket.

Observação

Os gatilhos de PR não estão disponíveis com repositórios locais do Bitbucket.

Se o servidor local estiver acessível por meio dos agentes hospedados, você poderá usar os agentes hospedados para executar builds manuais, agendados ou de CI. Caso contrário, você deve configurar agentes auto-hospedados que podem acessar o servidor local e buscar o código.

Acessível do Azure Pipelines

Se o servidor Bitbucket local estiver acessível no serviço Azure Pipelines, crie um Outra conexão de serviço do Git e use-o para criar um pipeline. Verifique a opção para Tentativa de acessar este servidor Git do Azure Pipelines.

Os gatilhos de CI funcionam por meio de sondagem e não por meio de webhooks. Em outras palavras, o Azure Pipelines verifica periodicamente o servidor Bitbucket se houver atualizações no código. Se houver, o Azure Pipelines iniciará uma nova execução.

Não acessível do Azure Pipelines

Se o servidor Bitbucket não puder ser acessado do Azure Pipelines, você terá duas opções:

  • Trabalhe com seu departamento de TI para abrir um caminho de rede entre o Azure Pipelines e o servidor Git local. Por exemplo, você pode adicionar exceções às regras de firewall para permitir que o tráfego do Azure Pipelines flua. Consulte a seção sobre IPs do Azure DevOps para ver quais endereços IP você precisa permitir. Além disso, você precisa ter uma entrada DNS pública para o servidor Bitbucket para que o Azure Pipelines possa resolver o FQDN do servidor para um endereço IP.

  • Você pode usar uma conexão Outros Git, mas informar ao Azure Pipelines para não tentativa de acessar esse servidor Git do Azure Pipelines. Os gatilhos de CI e PR não estão disponíveis com outros repositórios git. Você só pode iniciar execuções de pipeline manuais ou agendadas.

Acessível por agentes hospedados pela Microsoft

Outra decisão que você possivelmente precisa tomar é usar agentes hospedados pela Microsoft ou agentes auto-hospedados para executar seus pipelines. Essa escolha geralmente depende de se os agentes hospedados pela Microsoft podem acessar seu servidor. Para verificar se eles podem, crie um pipeline para usar agentes hospedados pela Microsoft e adicione uma etapa para verificar o código-fonte do servidor. Se isso for aprovado, você poderá continuar usando agentes hospedados pela Microsoft.

Não acessível por agentes hospedados pela Microsoft

Se o pipeline de teste simples mencionado na seção acima falhar com o erro TF401019: The Git repository with name or identifier <your repo name> does not exist or you do not have permissions for the operation you are attempting, o servidor Bitbucket não poderá ser acessado por agentes hospedados pela Microsoft. Isso provavelmente será causado por um firewall que bloqueia o tráfego desses servidores. Neste caso, você tem duas opções:

  • Trabalhe com seu departamento de TI para abrir um caminho de rede entre agentes hospedados pela Microsoft e o servidor Bitbucket. Consulte a seção sobre de rede em agentes hospedados pela Microsoft.

  • Alterne para usar agentes auto-hospedados ou agentes do conjunto de dimensionamento. Esses agentes podem ser configurados em sua rede e, portanto, terão acesso ao servidor Bitbucket. Esses agentes exigem apenas conexões de saída com o Azure Pipelines. Não é necessário abrir um firewall para conexões de entrada. Verifique se o nome do servidor especificado ao criar a conexão de serviço é resolvível dos agentes auto-hospedados.

Endereços IP do Azure DevOps

Quando você usa Outro Git conexão para configurar um pipeline clássico, desabilitar a comunicação entre o serviço do Azure Pipelines e o servidor Bitbucket e usar agentes auto-hospedados para criar código, você terá uma experiência degradada:

  • Você precisa digitar o nome do repositório manualmente durante a criação do pipeline
  • Você não pode usar gatilhos de CI, pois o Azure Pipelines não poderá sondar alterações no código
  • Você não pode usar gatilhos agendados com a opção de compilar somente quando houver alterações
  • Você não pode exibir informações sobre a confirmação mais recente na interface do usuário

Se você quiser aprimorar essa experiência, é importante habilitar a comunicação do Azure Pipelines com o Bitbucket Server.

Para permitir que o tráfego do Azure DevOps chegue ao servidor Bitbucket, adicione os endereços IP ou as marcas de serviço especificadas em conexões de entrada à lista de permissões do firewall. Se você usar o ExpressRoute, inclua também intervalos de IP do ExpressRoute à lista de permissões do firewall.

Permitir que o Azure Pipelines tente acessar o servidor Git no Outra conexão de serviço do Git.

Corridas informativas

Uma execução informativa informa que o Azure DevOps falhou ao recuperar o código-fonte de um pipeline YAML. A recuperação do código-fonte ocorre em resposta a eventos externos; por exemplo, um commit enviado por push. Também acontece em resposta a gatilhos internos; por exemplo, para verificar se há alterações de código e iniciar ou não uma execução agendada. A recuperação do código-fonte pode falhar por vários motivos. Um frequente é a limitação de solicitações pelo provedor do repositório Git. A existência de uma execução informativa não significa necessariamente que o Azure DevOps executaria o pipeline.

Uma execução informativa é semelhante à captura de tela a seguir.

Captura de tela de uma execução de pipeline informativa.

Você pode reconhecer uma execução informativa pelos seguintes atributos:

  • O status é Canceled
  • A duração é < 1s
  • O nome da execução contém um dos seguintes textos:
    • Could not retrieve file content for {file_path} from repository {repo_name} hosted on {host} using commit {commit_sha}.
    • Could not retrieve content for object {commit_sha} from repository {repo_name} hosted on {host}.
    • Could not retrieve the tree object {tree_sha} from the repository {repo_name} hosted on {host}.
    • Could not find {file_path} from repository {repo_name} hosted on {host} using version {commit_sha}. One of the directories in the path contains too many files or subdirectories.
  • O nome da execução geralmente contém o erro do BitBucket/GitHub que causou falha na carga do pipeline YAML
  • Sem estágios/trabalhos/etapas

Saiba mais sobre execuções informativas.

Limitações

O Azure Pipelines carrega no máximo 2.000 branches de um repositório em listas suspensas no Portal do Azure Devops, por exemplo, no branch Padrão para compilações manuais e agendadas configuração ou ao escolher um branch ao executar um pipeline manualmente. Se você não vir o branch desejado na lista, digite o nome do branch desejado manualmente.

Perguntas Freqüentes

Os problemas relacionados à integração do Bitbucket Server se enquadram nas seguintes categorias:

  • Gatilhos com falha: Meu pipeline não está sendo disparado quando envio uma atualização para o repositório.
  • Check-out com falha: meu pipeline está sendo disparado, mas ele falha na etapa de check-out.

Gatilhos com falha

Enviei uma alteração por push ao meu servidor, mas o pipeline não está sendo disparado.

Siga cada uma destas etapas para solucionar problemas dos gatilhos com falha:

  • O servidor Bitbucket está acessível no Azure Pipelines? O Azure Pipelines pesquisa periodicamente o servidor Bitbucket em busca de alterações. Se o servidor Bitbucket estiver por trás de um firewall, esse tráfego poderá não chegar ao servidor. Para obter mais informações, consulte endereços IP do Azure DevOps e verifique se você concedeu exceções a todos os endereços IP necessários. Esses endereços IP podem ter sido alterados, pois você configurou originalmente as regras de exceção. Você só poderá iniciar execuções manuais se tiver usado uma conexão Git externa e se o servidor não estiver acessível no Azure Pipelines.

  • Seu pipeline está em pausa ou desabilitado? Abra o editor do pipeline e selecione Configurações para verificar. Se o pipeline estiver em pausa ou desabilitado, os gatilhos não funcionarão.

  • Você excluiu os branches ou caminhos para os quais você efetuou push das alterações? Teste enviando uma alteração por push para um caminho incluído em um branch incluído. Observe que os caminhos nos gatilhos diferenciam maiúsculas de minúsculas. Certifique-se de usar a mesma formatação de maiúsculas e minúsculas das pastas reais ao especificar os caminhos nos gatilhos.

Não enviei atualizações por push ao meu código, no entanto, o pipeline ainda está sendo disparado.

  • O gatilho de integração contínua do Bitbucket funciona por meio de sondagem. Após cada intervalo de sondagem, o Azure Pipelines tenta entrar em contato com o servidor Bitbucket para verificar se houve atualizações no código. Se o Azure Pipelines não conseguir acessar o servidor Bitbucket (possivelmente devido a um problema de rede), iniciaremos uma nova execução de qualquer maneira supondo que possa ter havido alterações de código. Quando o Azure Pipelines não puder recuperar o código de um pipeline YAML, ele criará um de execução informativa.

Check-out com falha

Quando tento iniciar uma nova execução manualmente, há um atraso de 4 a 8 minutos antes de começar.

  • Seu servidor Bitbucket não é acessível do Azure Pipelines. Verifique se você não selecionou a opção de tentar acessar esse servidor Git do Azure Pipelines na conexão de serviço do Bitbucket. Se essa opção estiver selecionada, o Azure Pipelines tentará entrar em contato com seu servidor e, como o servidor é inacessível, ele eventualmente atinge o tempo limite e inicia a execução de qualquer maneira. Desmarcar essa opção acelera suas execuções manuais.

A etapa de check-out falha com o erro de que o servidor não pode ser resolvido.

Você usa agentes hospedados pela Microsoft? Nesse caso, talvez esses agentes não consigam acessar o servidor Bitbucket. Consulte Não é acessível por agentes hospedados pela Microsoft para obter mais informações.