On-premises Bitbucket-opslagplaatsen bouwen

Azure DevOps Services

Notitie

Zie Bitbucket Cloud om Bitbucket Cloud te integreren met Azure Pipelines.

U kunt uw on-premises Bitbucket-server of een andere Git-server integreren met Azure Pipelines. Uw on-premises server wordt mogelijk blootgesteld aan internet of niet.

Als uw on-premises server bereikbaar is vanaf de servers waarop de Azure Pipelines-service wordt uitgevoerd, gaat u als volgt te werk:

  • u kunt klassieke build instellen en CI-triggers configureren

Als uw on-premises server niet bereikbaar is vanaf de servers waarop de Azure Pipelines-service wordt uitgevoerd, gaat u als volgt te werk:

  • u kunt klassieke build-pijplijnen instellen en handmatige builds starten
  • u kunt GEEN CI-triggers configureren

Notitie

YAML-pijplijnen werken niet met on-premises Bitbucket-opslagplaatsen.

Notitie

PULL-triggers zijn niet beschikbaar voor on-premises Bitbucket-opslagplaatsen.

Als uw on-premises server bereikbaar is vanaf de gehoste agents, kunt u de gehoste agents gebruiken om handmatige, geplande of CI-builds uit te voeren. Anders moet u zelf-hostende agents instellen die toegang hebben tot uw on-premises server en de code ophalen.

Bereikbaar vanuit Azure Pipelines

Als uw on-premises Bitbucket-server bereikbaar is vanuit de Azure Pipelines-service, maakt u een andere Git-serviceverbinding en gebruikt u deze om een pijplijn te maken. Schakel de optie in om toegang te krijgen tot deze Git-server vanuit Azure Pipelines.

CI-triggers werken via polling en niet via webhooks. Met andere woorden, Azure Pipelines controleert regelmatig de Bitbucket-server als er updates voor code zijn. Als dat zo is, start Azure Pipelines een nieuwe uitvoering.

Niet bereikbaar vanuit Azure Pipelines

Als de Bitbucket-server niet kan worden bereikt vanuit Azure Pipelines, hebt u twee opties:

  • Werk samen met uw IT-afdeling om een netwerkpad te openen tussen Azure Pipelines en een on-premises Git-server. U kunt bijvoorbeeld uitzonderingen toevoegen aan uw firewallregels om verkeer van Azure Pipelines door te laten stromen. Zie de sectie over Ip-adressen van Azure DevOps om te zien welke IP-adressen u moet toestaan. Bovendien moet u een openbare DNS-vermelding voor de Bitbucket-server hebben, zodat Azure Pipelines de FQDN van uw server kan omgezet in een IP-adres.

  • U kunt een andere Git-verbinding gebruiken, maar Azure Pipelines laten weten dat deze Git-server niet kan worden geopend vanuit Azure Pipelines. CI- en PULL-triggers zijn niet beschikbaar voor andere Git-opslagplaatsen . U kunt alleen handmatige of geplande pijplijnuitvoeringen starten.

Bereikbaar vanaf door Microsoft gehoste agents

Een andere beslissing die u mogelijk moet nemen, is of u door Microsoft gehoste agents of zelf-hostende agents moet gebruiken om uw pijplijnen uit te voeren. Deze keuze is vaak afhankelijk van of door Microsoft gehoste agents uw server kunnen bereiken. Als u wilt controleren of dit mogelijk is, maakt u een pijplijn voor het gebruik van door Microsoft gehoste agents en moet u een stap toevoegen om de broncode van uw server te bekijken. Als dit wordt doorgegeven, kunt u doorgaan met het gebruik van door Microsoft gehoste agents.

Niet bereikbaar vanaf door Microsoft gehoste agents

Als de eenvoudige testpijplijn die in de bovenstaande sectie wordt genoemd, mislukt met de fout 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, is de Bitbucket-server niet bereikbaar vanaf door Microsoft gehoste agents. Dit wordt waarschijnlijk veroorzaakt door een firewall die verkeer van deze servers blokkeert. In dit geval hebt u twee opties:

  • Werk samen met uw IT-afdeling om een netwerkpad te openen tussen door Microsoft gehoste agents en Bitbucket-server. Zie de sectie over netwerken in door Microsoft gehoste agents.

  • Schakel over naar het gebruik van zelf-hostende agents of schaalsetagents. Deze agents kunnen worden ingesteld in uw netwerk en hebben daarom toegang tot de Bitbucket-server. Voor deze agents zijn alleen uitgaande verbindingen met Azure Pipelines vereist. U hoeft geen firewall te openen voor binnenkomende verbindingen. Zorg ervoor dat de naam van de server die u hebt opgegeven bij het maken van de serviceverbinding, kan worden omgezet vanuit de zelf-hostende agents.

IP-adressen van Azure DevOps

Wanneer u een andere Git-verbinding gebruikt om een klassieke pijplijn in te stellen, schakelt u de communicatie tussen de Azure Pipelines-service en de Bitbucket-server uit en gebruikt u zelf-hostende agents om code te bouwen, krijgt u een verminderde ervaring:

  • U moet de naam van de opslagplaats handmatig typen tijdens het maken van de pijplijn
  • U kunt CI-triggers niet gebruiken omdat Azure Pipelines geen poll kan uitvoeren op wijzigingen in de code
  • U kunt geplande triggers niet gebruiken met de optie om alleen te bouwen wanneer er wijzigingen zijn
  • U kunt geen informatie weergeven over de meest recente doorvoer in de gebruikersinterface

Als u deze ervaring wilt verbeteren, is het belangrijk dat u communicatie van Azure Pipelines naar Bitbucket Server inschakelt.

Als u wilt toestaan dat verkeer van Azure DevOps uw Bitbucket-server bereikt, voegt u de IP-adressen of servicetags toe die zijn opgegeven in binnenkomende verbindingen met de acceptatielijst van uw firewall. Als u ExpressRoute gebruikt, moet u ook ExpressRoute-IP-bereiken opnemen in de acceptatielijst van uw firewall.

Toestaan dat Azure Pipelines toegang probeert te krijgen tot de Git-server in de verbinding met andere Git-services .

Informatieve uitvoeringen

Een informatieve uitvoering geeft aan dat Azure DevOps de broncode van een YAML-pijplijn niet kan ophalen. Het ophalen van broncode vindt plaats als reactie op externe gebeurtenissen, bijvoorbeeld een gepushte doorvoer. Het gebeurt ook als reactie op interne triggers, bijvoorbeeld om te controleren of er codewijzigingen zijn en een geplande uitvoering starten of niet. Ophalen van broncode kan om meerdere redenen mislukken, waarbij vaak een aanvraagbeperking wordt aangevraagd door de provider van de Git-opslagplaats. Het bestaan van een informatieve uitvoering betekent niet noodzakelijkerwijs dat Azure DevOps de pijplijn gaat uitvoeren.

Een informatieve uitvoering ziet eruit in de volgende schermopname.

Screenshot of an informational pipeline run.

U kunt een informatieve uitvoering herkennen door de volgende kenmerken:

  • Status is Canceled
  • Duur is < 1s
  • De uitvoeringsnaam bevat een van de volgende teksten:
    • 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.
  • Run name bevat over het algemeen de BitBucket/GitHub-fout waardoor het laden van de YAML-pijplijn is mislukt
  • Geen fasen / taken / stappen

Meer informatie over informatieve uitvoeringen.

Beperkingen

Azure Pipelines laadt maximaal 2000 vertakkingen uit een opslagplaats in vervolgkeuzelijsten in de Azure Devops-portal, bijvoorbeeld in de standaardvertakking voor handmatige en geplande builds , of wanneer u een vertakking kiest wanneer u handmatig een pijplijn uitvoert. Als u de gewenste vertakking niet in de lijst ziet, typt u de naam van de gewenste vertakking handmatig.

Veelgestelde vragen

Problemen met betrekking tot Bitbucket Server-integratie vallen in de volgende categorieën:

  • Mislukte triggers: Mijn pijplijn wordt niet geactiveerd wanneer ik een update naar de opslagplaats push.
  • Uitchecken mislukt: Mijn pijplijn wordt geactiveerd, maar mislukt in de stap voor uitchecken.

Mislukte triggers

Ik heb een wijziging naar mijn server gepusht, maar de pijplijn wordt niet geactiveerd.

Volg deze stappen om problemen met uw mislukte triggers op te lossen:

  • Is uw Bitbucket-server toegankelijk vanuit Azure Pipelines? Azure Pipelines pollt regelmatig de Bitbucket-server op wijzigingen. Als de Bitbucket-server zich achter een firewall bevindt, bereikt dit verkeer mogelijk uw server niet. Zie Azure DevOps IP-adressen voor meer informatie en controleer of u uitzonderingen hebt verleend op alle vereiste IP-adressen. Deze IP-adressen zijn mogelijk gewijzigd omdat u oorspronkelijk de uitzonderingsregels hebt ingesteld. U kunt handmatige uitvoeringen alleen starten als u een externe Git-verbinding hebt gebruikt en als uw server niet toegankelijk is vanuit Azure Pipelines.

  • Is uw pijplijn onderbroken of uitgeschakeld? Open de editor voor de pijplijn en selecteer Instellingen om te controleren. Als uw pijplijn is onderbroken of uitgeschakeld, werken triggers niet.

  • Hebt u de vertakkingen of paden waarnaar u uw wijzigingen hebt gepusht uitgesloten? Test door een wijziging naar een opgenomen pad in een opgenomen vertakking te pushen. Houd er rekening mee dat paden in triggers hoofdlettergevoelig zijn. Zorg ervoor dat u dezelfde case gebruikt als die van echte mappen bij het opgeven van de paden in triggers.

Ik heb geen updates naar mijn code gepusht, maar de pijplijn wordt nog steeds geactiveerd.

  • De trigger voor continue integratie voor Bitbucket werkt via polling. Na elk polling-interval probeert Azure Pipelines contact op te nemen met de Bitbucket-server om te controleren of er updates voor de code zijn. Als Azure Pipelines de Bitbucket-server niet kan bereiken (mogelijk vanwege een netwerkprobleem), starten we toch een nieuwe uitvoering, ervan uitgaande dat er mogelijk codewijzigingen zijn aangebracht. Wanneer Azure Pipelines de code van een YAML-pijplijn niet kan ophalen, wordt er een informatieve uitvoering gemaakt.

Uitchecken mislukt

Wanneer ik een nieuwe uitvoering handmatig probeer te starten, is er een vertraging van 4-8 minuten voordat deze wordt gestart.

  • Uw Bitbucket-server is niet bereikbaar vanuit Azure Pipelines. Zorg ervoor dat u niet de optie hebt geselecteerd om toegang te krijgen tot deze Git-server vanuit Azure Pipelines in de Bitbucket-serviceverbinding. Als deze optie is geselecteerd, probeert Azure Pipelines verbinding te maken met uw server en omdat uw server onbereikbaar is, treedt er uiteindelijk een time-out op en wordt de uitvoering toch gestart. Als u deze optie uitschakelt, worden uw handmatige uitvoeringen versneld.

De uitcheckstap mislukt met de fout dat de server niet kan worden opgelost.

Gebruikt u door Microsoft gehoste agents? Zo ja, dan kunnen deze agents mogelijk uw Bitbucket-server niet bereiken. Zie Niet bereikbaar vanaf door Microsoft gehoste agents voor meer informatie.