Criar repositórios do Bitbucket Server

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.

    Enable the APIs

Como criar um gatilho do Bitbucket Server

Nesta seção, explicamos como conectar os repositórios do Bitbucket Server. ao Cloud Build e criar um gatilho para invocar automaticamente 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:

  1. Acesse a página Gatilhos:

    Abrir a página Acionadores

  2. Selecione seu projeto na parte superior da página e clique em Abrir.

  3. Clique em Criar gatilho.

  4. Preencha as configurações de gatilho a seguir:

    • Nome: nome do gatilho.

    • Região: selecione a região do gatilho.

      • 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 gatilho especificar um pool privado, o Cloud Build usa o pool para executar seu 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 especifica um pool privado, O Cloud Build usa a configuração pool para executar seu build na mesma região como 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 1a geração como sua origem.

      • Repositório: na lista de repositórios disponíveis, selecione um repositório de dados. Para conectar um novo repositório, consulte Conecte-se 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 gatilho:

        • 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, builds serão executados somente depois que um proprietário ou usuário com permissão de gravação Permissão de comentários /gcbrun na solicitação de envio. Consulte COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY.

        • Obrigatório: se um usuário com permissões de gravação criar um pull e inclui /gcbrun na descrição da solicitação de envio, a versão é executada após a criação da solicitação de envio. Quando uma solicitação de envio é criadas ou atualizadas por qualquer outro colaborador, as versões só serão executado depois que um proprietário ou usuário com comentários de permissões de gravação /gcbrun na solicitação de envio. Consulte COMMENTS_ENABLED.

        • Não obrigatório: quando uma solicitação de envio é criada ou atualizada pelo qualquer colaborador, os builds serão executados automaticamente pelo 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 superior e contiver /gcbrun.

        Para mais informações sobre os tipos de evento do Bitbucket Server, consulte Bitbucket documentação sobre como gerenciar webhooks.

    • Configuração: selecione o arquivo de configuração do build localizado em seu repositório ou configure seu build in-line no o 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 localizado no repositório, forneça a localização do arquivo de configuração do build ou o Dockerfile e um nome para a imagem resultante. Se sua configuração for um Dockerfile, você poderá fornecer um tempo limite para a criação. Depois de fornecer o Dockerfile e o nome da imagem, você verá uma visualização do comando docker 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.

  5. 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 Guia do Bitbucket sobre lesmas de repositório (em inglês).
  • PROJECT_NUMBER é o número do projeto do do Google 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 à sua tag se você quiser definir seu 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 a seguir.

{
    "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, se você quiser para definir o gatilho e criar determinadas ramificações.
  • TAG_NAME é a expressão regular da tag, se você quiser definir seu 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 que controla 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 seguinte comando curl no seu 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 projeto do Google Cloud.
  • PROJECT_ID é o ID do projeto no Google Cloud.

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:

  • ID do projeto do Google Cloud
  • Nome do gatilho

O compartilhamento de dados é ativado automaticamente no Bitbucket Server.

A seguir