Vytváření místních úložišť Bitbucket
Služby Azure DevOps
Poznámka:
Pokud chcete integrovat Bitbucket Cloud se službou Azure Pipelines, přečtěte si téma Bitbucket Cloud.
Místní server Bitbucket nebo jiný server Git můžete integrovat se službou Azure Pipelines. Váš místní server může být vystavený internetu nebo nemusí být dostupný.
Pokud je váš místní server dostupný ze serverů, na kterých běží služba Azure Pipelines, postupujte takto:
- Můžete nastavit klasické sestavení a nakonfigurovat triggery CI.
Pokud místní server není dostupný ze serverů, na kterých běží služba Azure Pipelines, pak:
- můžete nastavit klasické kanály buildu a spustit ruční sestavení.
- Nemůžete konfigurovat triggery CI
Poznámka:
Kanály YAML nefungují s místními úložišti Bitbucketu.
Poznámka:
Triggery žádosti o přijetí změn nejsou dostupné v místních úložištích Bitbucket.
Pokud je váš místní server dostupný z hostovaných agentů, můžete pomocí hostovaných agentů spouštět ruční, naplánované nebo ci buildy. Jinak musíte nastavit agenty v místním prostředí, které mají přístup k místnímu serveru a načíst kód.
Dostupný ze služby Azure Pipelines
Pokud je váš místní server Bitbucket dostupný ze služby Azure Pipelines, vytvořte další připojení služby Git a použijte ho k vytvoření kanálu. Zaškrtněte možnost Pokus o přístup k tomuto serveru Git ze služby Azure Pipelines.
Triggery CI fungují prostřednictvím dotazování, ne prostřednictvím webhooků. Jinými slovy, Azure Pipelines pravidelně kontroluje server Bitbucket, pokud existují nějaké aktualizace kódu. Pokud ano, azure Pipelines spustí nové spuštění.
Nedostupné z Azure Pipelines
Pokud server Bitbucket není dostupný ze služby Azure Pipelines, máte dvě možnosti:
Ve spolupráci s IT oddělením otevřete síťovou cestu mezi Azure Pipelines a místním serverem Git. Do pravidel brány firewall můžete například přidat výjimky, které umožňují průchod provozu ze služby Azure Pipelines. V části IP adresy Azure DevOps zjistíte, které IP adresy je potřeba povolit. Kromě toho musíte mít veřejnou položku DNS pro server Bitbucket, aby služba Azure Pipelines přeložil plně kvalifikovaný název domény vašeho serveru na IP adresu.
Můžete použít jiné připojení Gitu , ale službě Azure Pipelines sdělit, že se nepokoušá o přístup k tomuto serveru Git ze služby Azure Pipelines. Triggery CI a PR nejsou dostupné v jiných úložištích Git . Můžete spustit pouze ruční nebo naplánovaná spuštění kanálu.
Dostupný od agentů hostovaných Microsoftem
Dalším rozhodnutím, které možná musíte udělat, je, jestli ke spuštění kanálů použít agenty hostované Microsoftem nebo agenty v místním prostředí. Tato volba často závisí na tom, jestli se agenti hostovaní Microsoftem dostanou k vašemu serveru. Pokud chcete zkontrolovat, jestli je to možné, vytvořte kanál pro použití agentů hostovaných Microsoftem a nezapomeňte přidat krok pro kontrolu zdrojového kódu ze serveru. Pokud to projde, můžete dál používat agenty hostované Microsoftem.
Nedostupné z agentů hostovaných Microsoftem
Pokud jednoduchý testovací kanál uvedený v předchozí části selže s chybou 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
, server Bitbucket není dostupný z agentů hostovaných Microsoftem. To je pravděpodobně způsobeno bránou firewall blokující provoz z těchto serverů. V tomto případě máte dvě možnosti:
Ve spolupráci s IT oddělením otevřete síťovou cestu mezi agenty hostovanými Microsoftem a serverem Bitbucket. Přečtěte si část o sítích v agentech hostovaných Microsoftem.
Přepněte na používání agentů v místním prostředí nebo agentů škálovací sady. Tyto agenty je možné nastavit v rámci vaší sítě, a proto budou mít přístup k serveru Bitbucket. Tito agenti vyžadují pouze odchozí připojení ke službě Azure Pipelines. Pro příchozí připojení není potřeba otevřít bránu firewall. Ujistěte se, že název serveru, který jste zadali při vytváření připojení služby, je možné přeložit z agentů v místním prostředí.
IP adresy Azure DevOps
Pokud k nastavení klasického kanálu použijete jiné připojení Git , zakažte komunikaci mezi službou Azure Pipelines a serverem Bitbucket a pomocí agentů v místním prostředí sestavte kód, získáte snížený výkon:
- Při vytváření kanálu musíte zadat název úložiště ručně.
- Triggery CI nemůžete použít, protože Azure Pipelines nebude moct dotazovat na změny kódu.
- Naplánované triggery nemůžete použít s možností sestavení pouze v případech, kdy dojde ke změnám.
- V uživatelském rozhraní nemůžete zobrazit informace o nejnovějším potvrzení.
Pokud chcete toto prostředí vylepšit, je důležité povolit komunikaci ze služby Azure Pipelines na Server Bitbucket.
Pokud chcete povolit provoz z Azure DevOps pro přístup k vašemu serveru Bitbucket, přidejte IP adresy nebo značky služeb zadané v příchozích připojeních do seznamu povolených bran firewall. Pokud používáte ExpressRoute, nezapomeňte do seznamu povolených adres brány firewall zahrnout také rozsahy IP adres ExpressRoute.
Povolte službě Azure Pipelines pokus o přístup k serveru Git v připojení jiné služby Git .
Informační běhy
Informační spuštění sděluje, že se službě Azure DevOps nepodařilo načíst zdrojový kód kanálu YAML. Načítání zdrojového kódu probíhá v reakci na externí události, například nabízené potvrzení. Dochází také v reakci na interní triggery, například kvůli kontrole, jestli nedošlo ke změnám kódu, a spuštění naplánovaného spuštění nebo ne. Načítání zdrojového kódu může selhat z několika důvodů, přičemž často dochází k omezování požadavků poskytovatelem úložiště Git. Existence informačního spuštění nemusí nutně znamenat, že azure DevOps bude kanál spouštět.
Informační spuštění vypadá jako na následujícím snímku obrazovky.
Informační spuštění můžete rozpoznat pomocí následujících atributů:
- Stav je
Canceled
- Doba trvání je
< 1s
- Název spuštění obsahuje jeden z následujících textů:
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.
- Název spuštění obecně obsahuje chybu BitBucket nebo GitHub, která způsobila selhání načtení kanálu YAML.
- Žádné fáze / úlohy / kroky
Přečtěte si další informace o informačních spuštěních.
Omezení
Azure Pipelines načte z úložiště maximálně 2000 větví do rozevíracích seznamů na portálu Azure DevOps, například do výchozí větve pro ruční a plánované nastavení sestavení nebo při ručním výběru větve při spuštění kanálu. Pokud požadovanou větev v seznamu nevidíte, zadejte požadovaný název větve ručně.
Často kladené dotazy
Problémy související s integrací Bitbucket Serveru spadají do následujících kategorií:
- Triggery, které selhávají: Kanál se neaktivuje, když do úložiště nasdílím aktualizaci.
- Neúspěšná rezervace: Kanál se aktivuje, ale v kroku rezervace selže.
Neúspěšné triggery
Odeslal(a) jsem změnu na server, ale kanál se neaktivuje.
Při řešení potíží se selháním triggerů postupujte následovně:
Je váš server Bitbucket přístupný ze služby Azure Pipelines? Azure Pipelines pravidelně dotazuje server Bitbucket na změny. Pokud je server Bitbucket za bránou firewall, nemusí se tento provoz dostat na váš server. Další informace najdete v tématu IP adresy Azure DevOps a ověření, že jste udělili výjimky všem požadovaným IP adresám. Tyto IP adresy se mohly od původního nastavení pravidel výjimek změnit. Ruční spuštění můžete spustit jenom v případě, že jste použili externí připojení Git a pokud váš server není přístupný z Azure Pipelines.
Je kanál pozastavený nebo zakázaný? Otevřete editor kanálu a pak vyberte Nastavení, které chcete zkontrolovat. Pokud je kanál pozastavený nebo zakázaný, triggery nefungují.
Vyloučili jste větve nebo cesty, do kterých jste změny odeslali? Otestujte vložením změny do zahrnuté cesty v zahrnuté větvi. Všimněte si, že cesty v triggerech rozlišují malá a velká písmena. Při zadávání cest v triggerech se ujistěte, že používáte stejný případ jako u skutečných složek.
Nenasdílel(a) jsem do kódu žádné aktualizace, ale kanál se stále aktivuje.
- Trigger kontinuální integrace pro Bitbucket funguje prostřednictvím dotazování. Po každém intervalu dotazování se Azure Pipelines pokusí kontaktovat server Bitbucket a zkontrolovat, jestli nedošlo k nějakým aktualizacím kódu. Pokud se Azure Pipelines nemůže spojit se serverem Bitbucket (pravděpodobně kvůli problému se sítí), přesto spustíme nové spuštění za předpokladu, že mohlo dojít ke změnám kódu. Pokud Azure Pipelines nemůže načíst kód kanálu YAML, vytvoří informační spuštění.
Neúspěšná rezervace
Když se pokusím spustit nové spuštění ručně, dojde ke zpoždění 4 až 8 minut před jeho spuštěním.
- Váš server Bitbucket není dostupný z Azure Pipelines. Ujistěte se, že jste nevybrali možnost pokusu o přístup k tomuto serveru Git ze služby Azure Pipelines v připojení služby Bitbucket. Pokud je tato možnost vybraná, Azure Pipelines se pokusí kontaktovat váš server a vzhledem k tomu, že server není dostupný, nakonec vyprší časový limit a přesto se spustí. Zrušením zaškrtnutí této možnosti zrychlíte ruční spuštění.
Krok rezervace selže s chybou, že server nejde vyřešit.
Používáte agenty hostované Microsoftem? Pokud ano, tito agenti možná nebudou mít přístup k vašemu serveru Bitbucket. Další informace najdete v tématu Nedostupné z agentů hostovaných Microsoftem.