Nesta página, explicamos como se conectar a um host do Bitbucket Cloud ao Cloud Build.
Antes de começar
-
Ative as APIs Cloud Build, Secret Manager, and Compute Engine.
- Verifique se o código-fonte está em um repositório do Bitbucket Cloud
- Verifique se o repositório de origem do Bitbucket Cloud tem um
Dockerfile
ou um arquivo de configuração do Cloud Build. - Instale a Google Cloud CLI para usar os comandos
gcloud
.
Permissões do IAM obrigatórias
Para receber as permissões necessárias para se conectar, peça ao administrador para conceder a você o papel do IAM de administrador de conexão do Cloud Build (cloudbuild.connectionAdmin
) na conta de usuário.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Criar tokens de acesso do Bitbucket Cloud
Crie os dois tokens de acesso a seguir no Bitbucket Cloud:
- Token de acesso de administrador para conectar e desconectar repositórios.
- Token de acesso de leitura: para permitir que o Cloud Build acesse o código-fonte.
Para criar esses tokens, siga estas etapas:
Faça login no Bitbucket Cloud.
Siga as instruções do Bitbucket Cloud para criar tokens de acesso vinculados ao repositório, ao projeto ou ao espaço de trabalho.
Conceda as seguintes permissões:
Token de acesso de administrador:
- Repositórios: leitura e administrador
- Solicitações de envio: Read
- Webhooks: Read e Write
Token de acesso de leitura:
- Repositórios: leitura
Copie seus tokens para usar nos procedimentos a seguir.
Conectar-se a um host do Bitbucket Cloud
Console
Siga estas etapas para conectar o Cloud Build ao seu host do Bitbucket Cloud:
Abra a página Repositórios no console do Google Cloud.
Você verá a página Repositórios.
No seletor de projetos, escolha seu projeto do Google Cloud.
Na parte de cima da página, selecione a guia 2a geração.
Clique em Criar conexão de host para conectar um novo host ao Cloud Build.
Selecione Bitbucket como o provedor de origem.
Na seção Configurar conexão, insira as seguintes informações:
Região: selecione uma região para sua conexão.
Name (Nome): digite um nome para a conexão.
Na seção Detalhes do host, selecione Bitbucket Cloud como o tipo de host.
Espaço de trabalho: digite o ID do espaço de trabalho do repositório do Bitbucket Cloud.
Token de acesso: digite seu token de acesso de administrador criado anteriormente.
Token de acesso de leitura: digite seu token de acesso de leitura criado anteriormente.
Clique em Conectar.
A nova conexão é exibida na página Repositórios.
gcloud
Siga estas etapas para armazenar suas credenciais:
Execute os comandos a seguir para armazenar os tokens de acesso no Secret Manager do seu projeto do Google Cloud:
echo -n ADMIN_TOKEN | gcloud secrets create ADMIN_SECRET_NAME --data-file=- echo -n READ_TOKEN | gcloud secrets create READ_SECRET_NAME --data-file=-
Em que:
- ADMIN_TOKEN é seu token de acesso de administrador.
- ADMIN_SECRET_NAME é o nome que você quer dar ao secret do token de acesso de administrador no Secret Manager.
- READ_TOKEN é seu token de acesso de leitura.
- READ_SECRET_NAME é o nome que você quer dar ao secret do token de acesso de leitura no Secret Manager.
Crie um secret do webhook no Secret Manager executando o comando a seguir, em que WEBHOOK_SECRET_NAME é o nome que você quer atribuir ao secret do webhook:
echo -n ${ex.(random-uuid)} | gcloud secrets create WEBHOOK_SECRET_NAME --data-file=-
Se os secrets não estiverem todos no mesmo projeto, conceda acesso à conta de serviço do Cloud Build executando o seguinte:
PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") CLOUD_BUILD_SERVICE_ACCOUNT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com" gcloud secrets add-iam-policy-binding ADMIN_SECRET_NAME \ --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \ --role="roles/secretmanager.secretAccessor" gcloud secrets add-iam-policy-binding READ_SECRET_NAME \ --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \ --role="roles/secretmanager.secretAccessor" gcloud secrets add-iam-policy-binding WEBHOOK_SECRET_NAME \ --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \ --role="roles/secretmanager.secretAccessor"
Em que:
- PROJECT_ID é o ID do projeto no Google Cloud.
- ADMIN_SECRET_NAME é o nome da chave secreta do token de administrador.
- READ_SECRET_NAME é o nome do secret do token de leitura.
- WEBHOOK_SECRET_NAME é o nome do secret do webhook.
Conecte o Cloud Build ao host do Bitbucket Cloud usando o seguinte comando:
gcloud builds connections create bitbucket-cloud CONNECTION_NAME \ --workspace=WORKSPACE_ID \ --project=PROJECT_ID \ --region=REGION \ --authorizer-token-secret-version=projects/PROJECT_ID/secrets/ADMIN_SECRET_NAME/versions/latest \ --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/latest \ --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/1
Em que:
- CONNECTION_NAME é o nome que você quer dar à conexão com o host do Bitbucket Cloud.
- WORKSPACE_ID é o ID do espaço de trabalho do seu repositório do Bitbucket Cloud.
- PROJECT_ID é o ID do projeto no Google Cloud.
- REGION é a região da conexão do host.
- ADMIN_SECRET_NAME é o nome do secret do token do administrador.
- READ_SECRET_NAME é o nome do secret do token de acesso de leitura.
- WEBHOOK_SECRET_NAME é o nome do secret do webhook.
A seguir
- Saiba como se conectar a um repositório do Bitbucket Cloud.
- Saiba como ver os resultados da build.
- Saiba como executar implantações azul-verde no Compute Engine.