Creare repository Bitbucket locali

Servizi di Azure DevOps

Nota

Per integrare Bitbucket Cloud con Azure Pipelines, vedere Bitbucket Cloud.

È possibile integrare il server Bitbucket locale o un altro server Git con Azure Pipelines. Il server locale potrebbe essere esposto a Internet o potrebbe non essere.

Se il server locale è raggiungibile dai server che eseguono il servizio Azure Pipelines, allora:

  • è possibile configurare la compilazione classica e configurare i trigger CI

Se il server locale non è raggiungibile dai server che eseguono il servizio Azure Pipelines, allora:

  • è possibile configurare pipeline di compilazione classiche e avviare compilazioni manuali
  • non è possibile configurare i trigger di integrazione continua

Nota

Le pipeline YAML non funzionano con i repository Bitbucket locali.

Nota

I trigger di richiesta pull non sono disponibili con i repository Bitbucket locali.

Se il server locale è raggiungibile dagli agenti ospitati, è possibile usare gli agenti ospitati per eseguire compilazioni manuali, pianificate o ci. In caso contrario, è necessario configurare agenti self-hosted in grado di accedere al server locale e recuperare il codice.

Raggiungibile da Azure Pipelines

Se il server Bitbucket locale è raggiungibile dal servizio Azure Pipelines, creare una connessione altro servizio Git e usarla per creare una pipeline. Selezionare l'opzione Tentativo di accesso a questo server Git da Azure Pipelines.

I trigger CI funzionano tramite il polling e non tramite webhook. In altre parole, Azure Pipelines controlla periodicamente il server Bitbucket se sono presenti aggiornamenti al codice. In caso affermativo, Azure Pipelines avvia una nuova esecuzione.

Non raggiungibile da Azure Pipelines

Se il server Bitbucket non può essere raggiunto da Azure Pipelines, sono disponibili due opzioni:

  • Collaborare con il reparto IT per aprire un percorso di rete tra Azure Pipelines e il server Git locale. Ad esempio, è possibile aggiungere eccezioni alle regole del firewall per consentire il flusso del traffico da Azure Pipelines. Vedere la sezione sugli indirizzi IP di Azure DevOps per vedere gli indirizzi IP che è necessario consentire. È inoltre necessario disporre di una voce DNS pubblica per il server Bitbucket in modo che Azure Pipelines possa risolvere il nome di dominio completo del server in un indirizzo IP.

  • È possibile usare un'altra connessione Git, ma indicare ad Azure Pipelines di non tentare di accedere a questo server Git da Azure Pipelines. I trigger ci e pr non sono disponibili con altri repository Git . È possibile avviare solo esecuzioni di pipeline manuali o pianificate.

Raggiungibile dagli agenti ospitati da Microsoft

Un'altra decisione da prendere è se usare agenti ospitati da Microsoft o agenti self-hosted per eseguire le pipeline. Questa scelta dipende spesso dal fatto che gli agenti ospitati da Microsoft possano raggiungere il server. Per verificare se possono, creare una pipeline per usare gli agenti ospitati da Microsoft e assicurarsi di aggiungere un passaggio per controllare il codice sorgente dal server. Se questa operazione viene superata, è possibile continuare a usare gli agenti ospitati da Microsoft.

Non raggiungibile dagli agenti ospitati da Microsoft

Se la pipeline di test semplice indicata nella sezione precedente ha esito negativo con l'errore 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, il server Bitbucket non è raggiungibile dagli agenti ospitati da Microsoft. Questo problema è probabilmente causato da un firewall che blocca il traffico da questi server. In questo caso sono disponibili due opzioni:

  • Collaborare con il reparto IT per aprire un percorso di rete tra gli agenti ospitati da Microsoft e il server Bitbucket. Vedere la sezione relativa alla rete negli agenti ospitati da Microsoft.

  • Passare all'uso di agenti self-hosted o agenti del set di scalabilità. Questi agenti possono essere configurati all'interno della rete e di conseguenza avranno accesso al server Bitbucket. Questi agenti richiedono solo connessioni in uscita ad Azure Pipelines. Non è necessario aprire un firewall per le connessioni in ingresso. Assicurarsi che il nome del server specificato durante la creazione della connessione al servizio sia risolvibile dagli agenti self-hosted.

Indirizzi IP di Azure DevOps

Quando si usa Altre connessioni Git per configurare una pipeline classica, disabilitare la comunicazione tra il servizio Azure Pipelines e il server Bitbucket e usare agenti self-hosted per creare codice, si ottiene un'esperienza danneggiata:

  • È necessario digitare manualmente il nome del repository durante la creazione della pipeline
  • Non è possibile usare trigger di integrazione continua perché Azure Pipelines non sarà in grado di eseguire il polling delle modifiche apportate al codice
  • Non è possibile usare trigger pianificati con l'opzione per la compilazione solo quando sono presenti modifiche
  • Non è possibile visualizzare informazioni sul commit più recente nell'interfaccia utente

Per migliorare questa esperienza, è importante abilitare la comunicazione da Azure Pipelines al server Bitbucket.

Per consentire il traffico da Azure DevOps per raggiungere il server Bitbucket, aggiungere gli indirizzi IP o i tag di servizio specificati nelle connessioni in ingresso all'elenco di indirizzi consentiti del firewall. Se si usa ExpressRoute, assicurarsi di includere anche gli intervalli IP di ExpressRoute nell'elenco di indirizzi consentiti del firewall.

Consentire ad Azure Pipelines di tentare di accedere al server Git nella connessione altro servizio Git .

Esecuzioni informative

Un'esecuzione informativa indica che Azure DevOps non è riuscito a recuperare il codice sorgente di una pipeline YAML. Il recupero del codice sorgente viene eseguito in risposta a eventi esterni, ad esempio un commit sottoposto a push. Si verifica anche in risposta a trigger interni, ad esempio, per verificare se sono presenti modifiche al codice e avviare o meno un'esecuzione pianificata. Il recupero del codice sorgente può avere esito negativo per diversi motivi, con una limitazione frequente delle richieste da parte del provider di repository Git. L'esistenza di un'esecuzione informativa non significa necessariamente che Azure DevOps eseguirà la pipeline.

Un'esecuzione informativa è simile alla schermata seguente.

Screenshot of an informational pipeline run.

È possibile riconoscere un'esecuzione informativa con gli attributi seguenti:

  • Lo stato è Canceled
  • La durata è < 1s
  • Il nome dell'esecuzione contiene uno dei testi seguenti:
    • 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.
  • Il nome dell'esecuzione contiene in genere l'errore BitBucket/GitHub che ha causato l'esito negativo del caricamento della pipeline YAML
  • Nessuna fase/processo/passaggi

Altre informazioni sulle esecuzioni informative.

Limiti

Azure Pipelines carica un massimo di 2000 rami da un repository in elenchi a discesa nel portale di Azure Devops, ad esempio nel ramo predefinito per le compilazioni manuali e pianificate o quando si sceglie un ramo quando si esegue manualmente una pipeline. Se non viene visualizzato il ramo desiderato nell'elenco, digitare manualmente il nome del ramo desiderato.

Domande frequenti

I problemi relativi all'integrazione del server Bitbucket rientrano nelle categorie seguenti:

  • Trigger con errori: la pipeline non viene attivata quando si esegue il push di un aggiornamento nel repository.
  • Checkout non riuscito: la pipeline viene attivata, ma ha esito negativo nel passaggio di estrazione.

Trigger con errori

È stato eseguito il push di una modifica al server, ma la pipeline non viene attivata.

Seguire ognuno di questi passaggi per risolvere i problemi relativi ai trigger con errori:

  • Il server Bitbucket è accessibile da Azure Pipelines? Azure Pipelines esegue periodicamente il polling del server Bitbucket per le modifiche. Se il server Bitbucket si trova dietro un firewall, questo traffico potrebbe non raggiungere il server. Per altre informazioni, vedere Indirizzi IP di Azure DevOps e verificare di aver concesso eccezioni a tutti gli indirizzi IP necessari. Questi indirizzi IP potrebbero essere stati modificati dopo aver originariamente configurato le regole di eccezione. È possibile avviare le esecuzioni manuali solo se è stata usata una connessione Git esterna e se il server non è accessibile da Azure Pipelines.

  • La pipeline è sospesa o disabilitata? Aprire l'editor per la pipeline e quindi selezionare Impostazioni da controllare. Se la pipeline è sospesa o disabilitata, i trigger non funzionano.

  • Sono stati esclusi i rami o i percorsi in cui è stato eseguito il push delle modifiche? Eseguire il test eseguendo il push di una modifica a un percorso incluso in un ramo incluso. Si noti che i percorsi nei trigger fanno distinzione tra maiuscole e minuscole. Assicurarsi di usare lo stesso caso di quelle delle cartelle reali quando si specificano i percorsi nei trigger.

Non è stato eseguito il push di aggiornamenti al codice, ma la pipeline è ancora in fase di attivazione.

  • Il trigger di integrazione continua per Bitbucket funziona tramite il polling. Dopo ogni intervallo di polling, Azure Pipelines tenta di contattare il server Bitbucket per verificare se sono stati apportati aggiornamenti al codice. Se Azure Pipelines non riesce a raggiungere il server Bitbucket (probabilmente a causa di un problema di rete), si avvia comunque una nuova esecuzione presupponendo che siano state apportate modifiche al codice. Quando Azure Pipelines non riesce a recuperare il codice di una pipeline YAML, creerà un'esecuzione informativa.

Checkout non riuscito

Quando si tenta di avviare manualmente una nuova esecuzione, si verifica un ritardo di 4-8 minuti prima dell'avvio.

  • Il server Bitbucket non è raggiungibile da Azure Pipelines. Assicurarsi di non aver selezionato l'opzione per tentare di accedere a questo server Git da Azure Pipelines nella connessione al servizio Bitbucket. Se questa opzione è selezionata, Azure Pipelines tenterà di contattare il server e, poiché il server non è raggiungibile, si verifica il timeout e avvia comunque l'esecuzione. Deselezionando questa opzione si velocizza l'esecuzione manuale.

Il passaggio di estrazione ha esito negativo e viene visualizzato l'errore che il server non può essere risolto.

Si usano agenti ospitati da Microsoft? In questo caso, questi agenti potrebbero non essere in grado di raggiungere il server Bitbucket. Per altre informazioni, vedere Non raggiungibile dagli agenti ospitati da Microsoft.