Partage via


Générer des référentiels Bitbucket locaux

Azure DevOps Services

Notes

Pour intégrer Bitbucket Cloud à Azure Pipelines, consultez Bitbucket Cloud.

Vous pouvez intégrer votre serveur Bitbucket local ou un autre serveur Git à Azure Pipelines. Votre serveur local peut être exposé à Internet ou non.

Si votre serveur local est accessible à partir des serveurs qui exécutent le service Azure Pipelines, alors :

  • vous pouvez configurer des déclencheurs de build classiques et configurer des déclencheurs CI

Si votre serveur local n’est pas accessible à partir des serveurs qui exécutent le service Azure Pipelines, alors :

  • vous pouvez configurer des pipelines de build classiques et démarrer des builds manuelles
  • vous ne pouvez pas configurer les déclencheurs CI

Remarque

Les pipelines YAML ne fonctionnent pas avec les référentiels Bitbucket locaux.

Notes

Les déclencheurs PR ne sont pas disponibles avec les référentiels Bitbucket locaux.

Si votre serveur local est accessible à partir des agents hébergés, vous pouvez utiliser les agents hébergés pour exécuter des builds manuelles, planifiées ou CI. Sinon, vous devez configurer des agents auto-hébergés qui peuvent accéder à votre serveur local et extraire le code.

Accessible à partir d’Azure Pipelines

Si votre serveur Bitbucket local est accessible à partir du service Azure Pipelines, créez une autre connexion de service Git et utilisez-la pour créer un pipeline. Cochez l’option pour Tentative d’accès à ce serveur Git à partir d’Azure Pipelines.

Les déclencheurs CI fonctionnent via l’interrogation et non via les Webhooks. En d’autres termes, Azure Pipelines vérifie régulièrement le serveur Bitbucket et s’il existe des mises à jour du code. S’il y en a, Azure Pipelines démarre une nouvelle exécution.

Inaccessible depuis Azure Pipelines

Si le serveur Bitbucket ne peut pas être atteint à partir d’Azure Pipelines, vous avez deux options :

  • Collaborez avec votre service informatique pour ouvrir un chemin réseau entre Azure Pipelines et le serveur Git local. Par exemple, vous pouvez ajouter des exceptions à vos règles de pare-feu pour autoriser le trafic d’Azure Pipelines à passer. Consultez la section sur adresses IP Azure DevOps pour voir quelles adresses IP vous devez autoriser. En outre, vous devez disposer d’une entrée DNS publique pour le serveur Bitbucket afin qu’Azure Pipelines puisse résoudre le nom de domaine complet de votre serveur en adresse IP.

  • Vous pouvez utiliser une autre connexion Git, mais indiquez à Azure Pipelines de ne pas tenter d’accéder à ce serveur Git à partir d’Azure Pipelines. Les déclencheurs CI et PR ne sont pas disponibles avec d’autres référentiels Git. Vous ne pouvez démarrer que des exécutions manuelles ou planifiées de pipeline.

Accessible depuis des agents hébergés par Microsoft

Vous serez peut-être amené à prendre une décision quant à l’utilisation d’agents hébergés par Microsoft ou des agents autohébergés pour exécuter vos pipelines. Ce choix revient souvent à savoir si les agents hébergés par Microsoft peuvent atteindre votre serveur. Pour vérifier s’ils peuvent le faire, créez un pipeline pour utiliser des agents hébergés par Microsoft et veillez à ajouter une étape pour extraire le code source de votre serveur. Si cela réussit, vous pouvez continuer à utiliser des agents hébergés par Microsoft.

Inaccessible depuis les agents hébergés par Microsoft

Si le pipeline de test simple mentionné dans la section ci-dessus échoue avec l’erreur 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, le serveur Bitbucket n’est pas accessible à partir d’agents hébergés par Microsoft. Cela est probablement dû à un pare-feu bloquant le trafic de ces serveurs. Vous avez deux options dans ce cas :

  • Collaborez avec votre service informatique pour ouvrir un chemin réseau entre les agents hébergés par Microsoft et le serveur Bitbucket. Consultez la section sur la mise en réseau dans les agents hébergés par Microsoft.

  • Passez à l’utilisation d’agents auto-hébergés ou agents de groupe identique. Ces agents peuvent être configurés au sein de votre réseau et auront donc accès au serveur Bitbucket. Ces agents nécessitent uniquement des connexions sortantes vers Azure Pipelines. Il n’est pas nécessaire d’ouvrir un pare-feu pour les connexions entrantes. Assurez-vous que le nom du serveur que vous avez spécifié lors de la création de la connexion de service est résolvable à partir des agents auto-hébergés.

Adresses IP Azure DevOps

Lorsque vous utilisez uneautre connexion Git pour configurer un pipeline classique, désactivez la communication entre le service Azure Pipelines et le serveur Bitbucket et utilisez des agents auto-hébergés pour générer du code, vous obtenez une expérience détériorée :

  • Vous devez taper manuellement le nom du référentiel lors de la création du pipeline.
  • Vous ne pouvez pas utiliser de déclencheurs CI, car Azure Pipelines ne pourra pas interroger les modifications apportées au code
  • Vous ne pouvez pas utiliser de déclencheurs planifiés avec l’option de génération uniquement lorsqu’il y a des modifications.
  • Vous ne pouvez pas afficher d’informations sur la dernière validation dans l’interface utilisateur.

Si vous souhaitez améliorer cette expérience, il est important d’activer la communication entre Azure Pipelines et Bitbucket Server.

Pour autoriser le trafic d’Azure DevOps à atteindre votre serveur Bitbucket, ajoutez les adresses IP ou les balises de service spécifiées dans connexions entrantes à la liste d'autorisation de votre pare-feu. Si vous utilisez ExpressRoute, veillez également à inclure des plages d’adresses IP ExpressRoute à la liste d'autorisation de votre pare-feu.

Autorisez Azure Pipelines à tenter d’accéder au serveur Git dans une Autre connexion de service Git.

Exécutions d’informations

Une exécution d’information vous indique qu’Azure DevOps n’a pas pu récupérer le code source d’un pipeline YAML. La récupération du code source se produit en réponse à des événements externes, par exemple, une validation d’envoi (push). Elle se produit également en réponse à des déclencheurs internes, par exemple, pour vérifier s’il existe des modifications de code et démarrer une exécution planifiée ou non. La récupération du code source peut échouer pour plusieurs raisons, notamment la limitation de requêtes par le fournisseur de référentiel Git. L’existence d’une exécution d’informations ne signifie pas nécessairement qu’Azure DevOps allait exécuter le pipeline.

Une exécution d’informations se présente comme dans la capture d’écran suivante.

Screenshot of an informational pipeline run.

Vous pouvez reconnaître une exécution d’informations par les attributs suivants :

  • L’état est Canceled
  • La durée est de < 1s
  • Le nom d’exécution contient l’un des textes suivants :
    • 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.
  • Le nom d’exécution contient généralement l’erreur BitBucket /GitHub qui a provoqué l’échec de la charge du pipeline YAML
  • Pas de phases/travaux/phases

En savoir plus sur les exécutions informationnelles.

Limites

Azure Pipelines charge au maximum 2 000 branches à partir d’un référentiel dans des listes déroulantes dans le portail Azure Devops, par exemple dans la branche par défaut pour le paramètre de builds manuelles et planifiées, ou lorsque vous choisissez une branche lors de l’exécution manuelle d’un pipeline. Si vous ne voyez pas votre branche souhaitée dans la liste, tapez son nom manuellement.

FAQ

Les problèmes liés à l’intégration de Bitbucket Server appartiennent aux catégories suivantes :

Déclencheurs défaillants

J’ai envoyé une modification à mon serveur, mais le pipeline n’est pas déclenché.

Suivez chacune de ces étapes pour résoudre vos déclencheurs défaillants :

  • Votre serveur Bitbucket est-il accessible à partir d’Azure Pipelines ? Azure Pipelines interroge régulièrement le serveur Bitbucket pour les modifications. Si le serveur Bitbucket se trouve derrière un pare-feu, ce trafic peut ne pas atteindre votre serveur. Pour plus d’informations, consultez les adresses IP Azure DevOps et vérifiez que vous avez accordé des exceptions à toutes les adresses IP requises. Ces adresses IP peuvent avoir changé depuis que vous avez initialement configuré les règles d’exception. Vous pouvez démarrer des exécutions manuelles uniquement si vous avez utilisé une connexion Git externe et si votre serveur n’est pas accessible à partir d’Azure Pipelines.

  • Votre pipeline est-il suspendu ou désactivé ? Ouvrez l’éditeur du pipeline, puis sélectionnez Paramètres pour vérifier. Si votre pipeline est suspendu ou désactivé, les déclencheurs ne fonctionnent pas.

  • Avez-vous exclu les branches ou les chemins auxquels vous avez envoyé vos modifications ? Testez en envoyant une modification vers un chemin inclus dans une branche incluse. Notez que les chemins d’accès dans les déclencheurs respectent la casse. Veillez à utiliser le même cas que ceux des dossiers réels lors de la spécification des chemins d’accès dans les déclencheurs.

Je n’ai envoyé aucune mise à jour à mon code, mais le pipeline est toujours déclenché.

  • Le déclencheur d’intégration continue pour Bitbucket fonctionne via l’interrogation. Après chaque intervalle d’interrogation, Azure Pipelines tente de contacter le serveur Bitbucket pour vérifier s’il y a eu des mises à jour du code. Si Azure Pipelines ne parvient pas à atteindre le serveur Bitbucket (éventuellement en raison d’un problème de réseau), nous commençons une nouvelle exécution en supposant qu’il peut y avoir eu des modifications de code. Quand Azure Pipelines ne peut pas récupérer le code d’un pipeline YAML, il crée une exécution d’informations.

Échec de l’extraction

Lorsque j’essaie de démarrer manuellement une nouvelle exécution, il y a un délai de 4 à 8 minutes avant de commencer.

  • Votre serveur Bitbucket n’est pas accessible à partir d’Azure Pipelines. Vérifiez que vous n’avez pas sélectionné l’option permettant de tenter d’accéder à ce serveur Git à partir d’Azure Pipelines dans la connexion du service Bitbucket. Si cette option est sélectionnée, Azure Pipelines tente de contacter votre serveur et, étant donné que votre serveur est inaccessible, il expire et démarre l’exécution de toute façon. Désélectionner cette option accélère les exécutions manuelles.

L’étape d’extraction échoue avec l’erreur indiquant que le serveur ne peut pas être résolu.

Utilisez-vous des agents hébergés par Microsoft ? Dans ce cas, ces agents peuvent ne pas être en mesure d’atteindre votre serveur Bitbucket. Pour plus d’informations, consultez Non accessible à partir des agents hébergés par Microsoft.