Questa pagina spiega come connettersi a un repository Bitbucket Server a Cloud Build.
Prima di iniziare
Abilita le API Cloud Build, Secret Manager e Compute Engine, se non sono già abilitate.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente disponi già di questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.
- Segui le istruzioni per connettere un host Bitbucket Server prima di connettere i repository.
Connessione a un repository Bitbucket Server
Console
Per connettere un repository Bitbucket Server a Cloud Build utilizzando la console Google Cloud :
Apri la pagina Repository nella console Google Cloud .
Nella parte superiore della pagina, seleziona la scheda 1ª gen..
Fai clic su Connetti repository.
Seleziona Bitbucket Server.
Viene visualizzato il riquadro Connetti repository. Completa i seguenti passaggi per connettere il repository Bitbucket Server:
Regione: seleziona una regione in cui si trova la connessione.
Nella sezione Seleziona il provider di gestione del codice sorgente, seleziona Bitbucket Server.
Connessione host: seleziona il nome della connessione host dal menu a discesa.
Fai clic su Continua.
In Seleziona repository, seleziona i repository Bitbucket Server che vuoi connettere a Cloud Build.
Dopo aver selezionato l'account e i repository Bitbucket Server, leggi il disclaimer per il consenso e seleziona la casella di controllo accanto per indicare che accetti i termini presentati.
Fai clic su Connetti per connettere i tuoi repository.
Quando un repository è connesso, Cloud Build configura un webhook sul repository nell'istanza di Bitbucket Server. Il repository invia poi webhook per richiamare i trigger di Bitbucket Server corrispondenti quando apporti modifiche al repository. Un repository può essere connesso più volte con più connessioni host. Per scoprire come gestire i webhook, consulta Gestire i webhook.
Per individuare il webhook, devi disporre del relativo ID. L'ID webhook per ogni repository connesso è disponibile in
BitbucketServerConfig.Inserisci il seguente comando per recuperare l'ID webhook:
gcloud alpha builds enterprise-config bitbucketserver describe CONFIG_NAME --region=REGIONDove:
- CONFIG_NAME è il nome della configurazione di Bitbucket Server
- REGION è la regione della connessione host di Bitbucket Server
Fai clic su Fine. (Facoltativo) Fai clic su Crea un trigger per creare un trigger.
API
Per connettere il repository Bitbucket Server a Cloud Build utilizzando l'API, completa i seguenti passaggi:
Utilizza il seguente modello JSON per connettere il repository:
{ "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "requests": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "bitbucketServerConnectedRepository": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "repo": { "projectKey": "PROJECT_KEY", "repoSlug": "REPO_SLUG" } } } }Dove:
- PROJECT_NUMBER è il numero di progetto del tuo progetto Cloud.
- REGION è la regione associata alla configurazione di Bitbucket Server.
- BITBUCKET_SERVER_CONFIG_NAME è il nome della tua configurazione di Bitbucket Server.
- PROJECT_KEY è la chiave del tuo progetto Bitbucket Server.
Se vuoi connettere un repository personale, la chiave del progetto deve
contenere il simbolo della tilde (
~) prima del tuo nome utente. Ad esempio~${USERNAME}. L'URL completo di un repository host potrebbe avere il seguente aspetto:https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}. - REPO_SLUG è lo slug del tuo repository Bitbucket Server.
Inserisci questo comando
curlnel terminale:curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.jsonDove:
- PROJECT_NUMBER è il numero del tuo progetto Cloud.
- PROJECT_ID è il tuo ID progetto Cloud.
- REGION è la regione associata alla configurazione di Bitbucket Server.
- BITBUCKET_SERVER_CONFIG_NAME è il nome della configurazione di Bitbucket Server.
In caso di esito positivo, il corpo della risposta contiene un'istanza di Operation appena creata.
Inserisci questo comando
curlnel terminale:curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_IDDove:
- PROJECT_NUMBER è il numero del tuo progetto Cloud.
- PROJECT_ID è il tuo ID progetto Cloud.
- REGION è la regione associata alla configurazione di Bitbucket Server.
- OPERATION_ID è l'ID dell'operazione di creazione della configurazione di Bitbucket Server.
Puoi trovare l'ID operazione nel campo
namedella risposta. Il formato del camponamenella risposta è simile al seguente:projects/project-id/locations/region/operations/operation-id.
Potrebbe essere necessario continuare a eseguire il comando API
GetOperationfinché la risposta non contienedone: true, che indica che l'operazione è stata completata. Se il repository Bitbucket Server è connesso correttamente, puoi visualizzarlo nel camporesponse.bitbucketServerConnectedRepositories. In caso contrario, consulta il campoerrorper un report dettagliato sugli errori.
Passaggi successivi
- Scopri come creare repository da Bitbucket Server.
- Scopri come creare repository da Bitbucket Server in una rete privata.
- Scopri come eseguire deployment blu/verde su Compute Engine.