Erstellen lokaler Bitbucket-Repositorys
Azure DevOps Services
Hinweis
Informationen zum Integrieren von Bitbucket Cloud in Azure Pipelines finden Sie unter Bitbucket Cloud.
Sie können Ihren lokalen Bitbucket-Server oder einen anderen Git-Server in Azure-Pipelines integrieren. Ihr lokaler Server ist möglicherweise für das Internet verfügbar oder ist nicht möglich.
Wenn Ihr lokaler Server von den Servern erreichbar ist, auf denen der Azure Pipelines-Dienst ausgeführt wird, gehen Sie wie folgt vor:
- Sie können klassische Build- und CI-Trigger einrichten und konfigurieren.
Wenn Ihr lokaler Server nicht von den Servern erreichbar ist, auf denen der Azure Pipelines-Dienst ausgeführt wird, gehen Sie wie folgt vor:
- Sie können klassische Buildpipelines einrichten und manuelle Builds starten
- Ci-Trigger können nicht konfiguriert werden.
Hinweis
YAML-Pipelines funktionieren nicht mit lokalen Bitbucket-Repositorys.
Hinweis
PR-Trigger sind nicht mit lokalen Bitbucket-Repositorys verfügbar.
Wenn Ihr lokaler Server von den gehosteten Agents erreichbar ist, können Sie die gehosteten Agents verwenden, um manuelle, geplante oder CI-Builds auszuführen. Andernfalls müssen Sie selbst gehostete Agents einrichten, die auf Ihren lokalen Server zugreifen und den Code abrufen können.
Erreichbar von Azure-Pipelines
Wenn Ihr lokaler Bitbucket-Server über den Azure Pipelines-Dienst erreichbar ist, erstellen Sie eine Andere Git--Dienstverbindung, und verwenden Sie diese zum Erstellen einer Pipeline. Aktivieren Sie die Option zum Versuch, über Azure Pipelinesauf diesen Git-Server zuzugreifen.
CI triggers work through polling and not through webhooks. Mit anderen Worten: Azure Pipelines überprüft regelmäßig den Bitbucket-Server, wenn Codeupdates vorhanden sind. Wenn vorhanden, startet Azure Pipelines eine neue Ausführung.
Nicht erreichbar von Azure-Pipelines
Wenn der Bitbucket-Server nicht über Azure-Pipelines erreicht werden kann, haben Sie zwei Optionen:
Arbeiten Sie mit Ihrer IT-Abteilung zusammen, um einen Netzwerkpfad zwischen Azure-Pipelines und lokalem Git-Server zu öffnen. Sie können beispielsweise Ausnahmen zu Ihren Firewallregeln hinzufügen, um datenverkehr von Azure-Pipelines zuzulassen, die ablaufen. Lesen Sie den Abschnitt zu Azure DevOps-IPs, um zu sehen, welche IP-Adressen Sie zulassen müssen. Darüber hinaus müssen Sie über einen öffentlichen DNS-Eintrag für den Bitbucket-Server verfügen, damit Azure Pipelines den FQDN Ihres Servers in eine IP-Adresse auflösen kann.
Sie können eine Andere Git--Verbindung verwenden, Azure Pipelines jedoch mitteilen, dass Azure Pipelines nicht versuchen, über Azure Pipelinesauf diesen Git-Server zuzugreifen. CI- und PR-Trigger sind mit Anderen Git Repositorys nicht verfügbar. Sie können nur manuelle oder geplante Pipelineausführungen starten.
Erreichbar von von Microsoft gehosteten Agents
Eine weitere Entscheidung, die Sie möglicherweise treffen müssen, ist die Verwendung von von Microsoft gehosteten Agents oder selbst gehosteten Agents zum Ausführen Ihrer Pipelines. Diese Auswahl hängt häufig davon ab, ob von Microsoft gehostete Agents Ihren Server erreichen können. Um zu überprüfen, ob dies möglich ist, erstellen Sie eine Pipeline, um von Microsoft gehostete Agents zu verwenden, und stellen Sie sicher, dass Sie einen Schritt zum Auschecken des Quellcodes von Ihrem Server hinzufügen. Wenn dies erfolgreich ist, können Sie weiterhin von Microsoft gehostete Agents verwenden.
Nicht erreichbar von von Microsoft gehosteten Agents
Wenn die im obigen Abschnitt erwähnte einfache Testpipeline mit dem Fehler 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
fehlschlägt, kann der Bitbucket-Server nicht von von Microsoft gehosteten Agents erreicht werden. Dies wird wahrscheinlich erneut durch eine Firewall verursacht, die den Datenverkehr von diesen Servern blockiert. Sie haben in diesem Fall zwei Optionen:
Arbeiten Sie mit Ihrer IT-Abteilung zusammen, um einen Netzwerkpfad zwischen von Microsoft gehosteten Agents und dem Bitbucket-Server zu öffnen. Weitere Informationen finden Sie im Abschnitt zu Netzwerk- in von Microsoft gehosteten Agents.
Wechseln Sie zu selbst gehosteten Agents oder Skalierungs-Set-Agents. Diese Agents können in Ihrem Netzwerk eingerichtet werden und haben daher Zugriff auf den Bitbucket-Server. Diese Agents erfordern nur ausgehende Verbindungen zu Azure-Pipelines. Es ist nicht erforderlich, eine Firewall für eingehende Verbindungen zu öffnen. Stellen Sie sicher, dass der Name des Servers, den Sie beim Erstellen der Dienstverbindung angegeben haben, von den selbst gehosteten Agents aufgelöst werden kann.
Azure DevOps-IP-Adressen
Wenn Sie Verbindung "Other Git" verwenden, um eine klassische Pipeline einzurichten, die Kommunikation zwischen dem Azure Pipelines-Dienst und dem Bitbucket-Server zu deaktivieren und selbst gehostete Agents zum Erstellen von Code zu verwenden, erhalten Sie eine beeinträchtigte Erfahrung:
- Sie müssen während der Pipelineerstellung manuell den Namen des Repositorys eingeben.
- Ci-Trigger können nicht verwendet werden, da Azure Pipelines keine Änderungen am Code abrufen können.
- Sie können geplante Trigger nicht mit der Option zum Erstellen verwenden, wenn Änderungen vorhanden sind.
- Sie können keine Informationen zum neuesten Commit auf der Benutzeroberfläche anzeigen.
Wenn Sie diese Erfahrung verbessern möchten, ist es wichtig, dass Sie die Kommunikation von Azure Pipelines zu Bitbucket Server aktivieren.
Um den Datenverkehr von Azure DevOps zuzulassen, um Ihren Bitbucket-Server zu erreichen, fügen Sie die in eingehenden Verbindungen angegebenen IP-Adressen oder Diensttags zur Zulassungsliste Ihrer Firewall hinzu. Wenn Sie ExpressRoute verwenden, müssen Sie auch ExpressRoute-IP-Bereiche in die Zulassungsliste Ihrer Firewall einschließen.
Erlauben Sie Azure Pipelines, auf den Git-Server in der Andere Git--Dienstverbindung zuzugreifen.
Informationsläufe
Eine Informationsausführung teilt Ihnen mit, dass Azure DevOps den Quellcode einer YAML-Pipeline nicht abrufen konnte. Der Quellcodeabruf erfolgt als Reaktion auf externe Ereignisse, z. B. einen pushed commit. Es geschieht auch als Reaktion auf interne Trigger, z. B. um zu überprüfen, ob Codeänderungen vorhanden sind und eine geplante Ausführung starten oder nicht. Der Quellcodeabruf kann aus mehreren Gründen fehlschlagen, wobei häufig eine Einschränkung durch den Git-Repositoryanbieter angefordert wird. Das Vorhandensein einer Informationsausführung bedeutet nicht unbedingt, dass Azure DevOps die Pipeline ausführen würde.
Eine Informationsausführung sieht im folgenden Screenshot aus.
Sie können eine Informationsausführung anhand der folgenden Attribute erkennen:
- Status ist
Canceled
- Die Dauer ist
< 1s
- Der Name des Ausführens enthält einen der folgenden Texte:
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.
- Der Ausführungsname enthält in der Regel den BitBucket/GitHub-Fehler, der dazu führte, dass die YAML-Pipelinelast fehlschlug.
- Keine Phasen / Aufträge / Schritte
Erfahren Sie mehr über Informationsläufe.
Einschränkungen
Azure Pipelines lädt maximal 2000 Verzweigungen aus einem Repository in Dropdownlisten im Azure Devops-Portal, z. B. in den Default Branch für manuelle und geplante Builds Einstellung oder beim Manuellen Ausführen einer Pipeline. Wenn die gewünschte Verzweigung in der Liste nicht angezeigt wird, geben Sie den gewünschten Verzweigungsnamen manuell ein.
Häufig gestellte Fragen
Probleme im Zusammenhang mit der Bitbucket Server-Integration sind in die folgenden Kategorien unterteilt:
- Fehlerauslöser: Meine Pipeline wird nicht ausgelöst, wenn ich ein Update an das Repository pushe.
- Fehler beim Auschecken: Meine Pipeline wird ausgelöst, aber sie schlägt im Auscheckschritt fehl.
Triggerfehler
Ich habe eine Änderung an meinen Server verschoben, aber die Pipeline wird nicht ausgelöst.
Führen Sie die folgenden Schritte aus, um Fehler bei Triggern zu beheben:
Kann Auf Ihren Bitbucket-Server über Azure-Pipelines zugegriffen werden? Azure Pipelines fragt in regelmäßigen Abständen den Bitbucket-Server nach Änderungen ab. Wenn sich der Bitbucket-Server hinter einer Firewall befindet, gelangt dieser Datenverkehr möglicherweise nicht zu Ihrem Server. Weitere Informationen finden Sie unter Azure DevOps-IP-Adressen und überprüfen Sie, ob Sie Ausnahmen für alle erforderlichen IP-Adressen erteilt haben. Diese IP-Adressen wurden möglicherweise geändert, da Sie die Ausnahmeregeln ursprünglich eingerichtet haben. Sie können manuelle Ausführung nur starten, wenn Sie eine externe Git-Verbindung verwendet haben und wenn Ihr Server nicht über Azure-Pipelines zugänglich ist.
Ist Ihre Pipeline angehalten oder deaktiviert? Öffnen Sie den Editor für die Pipeline, und wählen Sie Einstellungen aus, um dies zu überprüfen. Wenn Ihre Pipeline angehalten oder deaktiviert ist, funktionieren Trigger nicht.
Haben Sie die Branches oder Pfade ausgeschlossen, an die Sie Ihre Änderungen gepusht haben? Testen Sie dies, indem Sie eine Änderung an einen eingeschlossenen Pfad in einem eingeschlossenen Branch pushen. Denken Sie daran, dass bei Pfaden in Triggern die Groß-/Kleinschreibung beachtet wird. Stellen Sie sicher, dass Sie beim Angeben der Pfade in Triggern dieselbe Groß-/Kleinschreibung verwenden wie bei den tatsächlichen Ordnern.
Ich habe keine Aktualisierungen an meinen Code übertragen, die Pipeline wird jedoch noch ausgelöst.
- Der fortlaufende Integrationsauslöser für Bitbucket funktioniert durch Abfragen. Nach jedem Abrufintervall versucht Azure Pipelines, den Bitbucket-Server zu kontaktieren, um zu überprüfen, ob Updates für den Code vorhanden sind. Wenn Azure Pipelines den Bitbucket-Server nicht erreichen kann (möglicherweise aufgrund eines Netzwerkproblems), starten wir trotzdem eine neue Ausführung, vorausgesetzt, es gab möglicherweise Codeänderungen. Wenn Azure Pipelines den Code einer YAML-Pipeline nicht abrufen können, wird eine Informationsausführungerstellt.
Fehler beim Check-Out
Wenn ich versuche, eine neue Ausführung manuell zu starten, liegt eine Verzögerung von 4-8 Minuten vor dem Start vor dem Start vor.
- Ihr Bitbucket-Server ist nicht über Azure-Pipelines erreichbar. Stellen Sie sicher, dass Sie die Option nicht ausgewählt haben, um versuchen, über Azure Pipelines in der Bitbucket-Dienstverbindung auf diesen Git-Server zuzugreifen. Wenn diese Option ausgewählt ist, versucht Azure Pipelines, sich an Ihren Server zu wenden, und da ihr Server nicht erreichbar ist, wird es schließlich zu einem Timeout und zum Starten der Ausführung trotzdem. Wenn Sie diese Option deaktivieren, wird die manuelle Ausführung beschleunigt.
Der Auscheckschritt schlägt mit dem Fehler fehl, der vom Server nicht behoben werden kann.
Verwenden Sie von Microsoft gehostete Agents? Wenn ja, können diese Agents ihren Bitbucket-Server möglicherweise nicht erreichen. Weitere Informationen finden Sie unter nicht erreichbar von von Microsoft gehosteten Agents.