O Cloud Build permite criar acionadores para criar em repositórios hospedados no Bitbucket Server, permitindo que você execute builds em resposta a eventos, como envios de confirmação ou solicitações de pull associadas ao repositório do Bitbucket Server.
Esta página explica como ativar a funcionalidade de gatilho em uma instância do Bitbucket Server.
Antes de começar
-
Enable the Cloud Build, Secret Manager, and Compute Engine APIs.
- Se você não instalou uma instância do Bitbucket Server, consulte o guia de instalação do Bitbucket para ver instruções.
- Siga as instruções para conectar um host do Bitbucket Server.
- Siga as instruções para conectar um repositório do Bitbucket Server.
Como criar um acionador do Bitbucket Server
Esta seção explica como conectar seus repositórios do Bitbucket Server ao Cloud Build e criar um gatilho para invocar automaticamente builds nos repositórios conectados. Se você quiser usar gatilhos do Bitbucket Server em uma rede privada, consulte Como criar repositórios do Bitbucket Server em uma rede privada para mais instruções.
Console
Para criar um gatilho do Bitbucket Server usando o console do Google Cloud:
Acesse a página Gatilhos:
Selecione seu projeto na parte superior da página e clique em Abrir.
Clique em Criar gatilho.
Preencha as configurações de gatilho a seguir:
Nome: nome do acionador.
Região: selecione a região do acionador.
- Se você selecionar global como a região, o Cloud Build vai usar o pool padrão para executar o build.
- Se você selecionar uma região não global e o arquivo de configuração de build associado ao acionador especificar um pool particular, o Cloud Build vai usar o pool particular para executar o build. Nesse caso, a região especificada no acionador precisa corresponder à região em que você criou o pool particular.
- Se você selecionar uma região não global e o arquivo de configuração de build associado ao gatilho não especificar um pool particular, o Cloud Build vai usar o pool padrão para executar o build na mesma região do gatilho.
Descrição (opcional): uma descrição do gatilho.
Evento: selecione o evento de repositório para invocar seu gatilho.
Enviar para uma ramificação: defina o gatilho para iniciar um build em confirmações de uma ramificação específica.
Enviar nova tag por push: configure o gatilho para iniciar um build em confirmações que contenham uma tag específica.
Solicitação de pull: configure o acionador para iniciar um build em confirmações para uma solicitação de pull.
Origem: selecione 1ª geração como origem.
Repositório: na lista de repositórios disponíveis, selecione um repositório. Para conectar um novo repositório, consulte Conectar a um repositório do Bitbucket Server.
Ramificação ou Tag: especifique uma expressão regular correspondente ao valor da ramificação ou da tag.
Controle de comentários: se você selecionou Solicitação de envio como seu Evento, é possível escolher configurações para controlar se os eventos sem comentários exigem interação adicional para acionar builds. Escolha uma das seguintes opções para controlar se um build será executado automaticamente pelo acionador:
Obrigatório, exceto para proprietários e colaboradores: quando uma solicitação de envio é criada ou atualizada por um proprietário de repositório ou um usuário com permissões de gravação, os builds são executados automaticamente pelo gatilho. Se um colaborador externo iniciar a ação, os builds só serão executados depois que um proprietário ou um usuário com permissões de gravação comentar
/gcbrun
na solicitação de envio. ConsulteCOMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY
.Obrigatório: se um usuário com permissões de gravação criar uma solicitação de envio e incluir
/gcbrun
na descrição da solicitação, o build será executado na criação da solicitação de envio. Quando uma solicitação de envio é criada ou atualizada por qualquer outro colaborador, os builds só são executados depois que um proprietário ou um usuário com permissões de gravação comenta/gcbrun
na solicitação de envio. ConsulteCOMMENTS_ENABLED
.Não obrigatório: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, os builds são executados automaticamente por gatilhos. Consulte
COMMENTS_DISABLED
.
No Bitbucket Server, os eventos sem comentários incluem ações como abrir, modificar e aprovar solicitações de envio.
Os eventos de comentários, que incluem adição, edição e exclusão de comentários, só vão acionar builds se o comentário for de um usuário com permissões de gravação ou mais e contiver
/gcbrun
.Para mais informações sobre os tipos de eventos do Bitbucket Server, consulte a documentação do Bitbucket sobre como gerenciar webhooks.
Configuração: selecione o arquivo de configuração do build localizado no seu repositório ou configure o build inline no gatilho.
Type: selecione o tipo de configuração a ser usado para o build.
- Arquivo de configuração do Cloud Build (yaml ou json): use um arquivo de configuração do build na sua configuração.
- Dockerfile: use um
Dockerfile
para sua configuração.
Local: especifique o local de configuração.
Repositório: se o arquivo de configuração estiver no repositório, forneça o local do arquivo de configuração do build ou do diretório
Dockerfile
e um nome para a imagem resultante. Se sua configuração for umDockerfile
, você poderá fornecer um tempo limite para a criação. Depois de fornecer oDockerfile
e o nome da imagem, você verá uma visualização do comandodocker build
que sua o build executará.Inline: se você selecionou o arquivo de configuração do Cloud Build (yaml ou json) como opção de configuração, pode especificar a configuração de compilação in-line. Clique em Abrir editor para gravar o arquivo de configuração do build no Console do Google Cloud usando a sintaxe YAML ou JSON. Clique em Concluído para salvar a configuração da compilação.
Clique em Criar para criar o gatilho do Bitbucket Server.
gcloud
Para criar um gatilho do Bitbucket Server usando comandos gcloud
, execute o comando gcloud builds triggers create bitbucketserver
abaixo no terminal:
gcloud builds triggers create bitbucketserver
--name=TRIGGER_NAME \
--project-key=PROJECT_KEY \
--repo-slug=REPO_SLUG \
--bitbucket-server-config-resource=projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID \
--branch-pattern=BRANCH_NAME \ # --tag-pattern=TAG_NAME
--build-config=BUILD_CONFIG
Em que:
- TRIGGER_NAME é o nome do gatilho.
- PROJECT_KEY é a chave do seu projeto do Bitbucket Server. PROJECT_KEY diferencia maiúsculas de minúsculas.
- REPO_SLUG é o slug do repositório do Bitbucket Server. Para mais informações, consulte o guia do Bitbucket sobre slugs de repositório.
- PROJECT_NUMBER é o número do projeto do Cloud.
- REGION é a região associada à configuração do Bitbucket Server.
- ID é o ID do BitbucketServerConfig.
- BRANCH_NAME é uma expressão regular que corresponde à ramificação se você quiser definir o gatilho para criar determinadas ramificações.
- TAG_NAME é uma expressão regular que corresponde à tag se você quiser definir o gatilho para criar determinadas tags.
- BUILD_CONFIG é o caminho para seu arquivo de configuração do build.
API
Para criar um gatilho do Bitbucket Server com a API, use o modelo JSON abaixo.
{
"filename": "cloudbuild.yaml",
"name": "curl-trigger",
"description": "curl trigger",
"bitbucket_server_trigger_config": {
"repo_slug": "REPO_SLUG",
"project_key": "PROJECT_KEY",
"push": {
"branch": "BRANCH_NAME" # "tag": "TAG_NAME"
},
"bitbucket_server_config_resource": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/ID"
"comment_control": "COMMENT_SETTING"
}
}
Em que:
- REPO_SLUG é o slug do repositório do Bitbucket Server. Para mais informações, consulte o guia do Bitbucket sobre slugs de repositório.
- PROJECT_KEY é a chave do seu projeto do Bitbucket Server. PROJECT_KEY diferencia maiúsculas de minúsculas.
- BRANCH_NAME é a expressão regular da ramificação, caso você queira definir o gatilho para criar determinadas ramificações.
- TAG_NAME é a expressão regular da tag se você quiser definir o gatilho para criar determinadas tags.
- PROJECT_NUMBER é o número do projeto do Cloud.
- REGION é a região associada à configuração do Bitbucket Server.
- ID é o ID do BitbucketServerConfig.
- COMMENT_SETTING é a configuração para controlar se os gatilhos de build exigem
/gcbrun
em um comentário para que o build seja executado. Para mais informações, consulte commentControl.
Digite o comando curl
a seguir no terminal:
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/triggers -d @trigger.json
Em que:
- PROJECT_NUMBER é o número do Google Cloud projeto.
- PROJECT_ID é o ID do Google Cloud projeto.
Compartilhamento de dados
Os dados enviados do Cloud Build para o Bitbucket Server ajudam a identificar gatilhos por nome e conferir os resultados da versão no Bitbucket Server.
Os dados a seguir são compartilhados entre o Cloud Build e o Bitbucket Server:
- Google Cloud ID do projeto
- Nome do gatilho
O compartilhamento de dados é ativado automaticamente no Bitbucket Server.
A seguir
- Saiba como criar e gerenciar gatilhos de compilação.
- Saiba como criar repositórios do Bitbucket Server em uma rede privada.
- Saiba como realizar implantações azul-verde no Compute Engine.