Criar repositórios do Bitbucket Server

Com o Cloud Build, é possível criar gatilhos a partir de repositórios hospedados no servidor do Bitbucket. Assim, você executa versões em resposta a eventos, como solicitações de envio ou envio de confirmação, associadas ao repositório do Bitbucket Server.

Nesta página, explicamos como ativar o recurso de acionamento em uma instância do servidor do Bitbucket.

Antes de começar

  • Ative as APIs Cloud Build, Secret Manager, and Compute Engine.

    Ative as 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 as versões nos repositórios conectados. Se você quiser usar os acionadores 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 usará o pool padrão para executar sua versão.
      • Se você selecionar uma região não global e o arquivo de configuração da versão associado ao gatilho especificar um pool privado, o Cloud Build usará o pool privado para executar a versão. Nesse caso, a região especificada no gatilho precisa corresponder à região em que você criou o pool privado.
      • Se você selecionar uma região não global e o arquivo de configuração da versão associado ao gatilho não especificar um pool particular, o Cloud Build usará o pool padrão para executar a compilação 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 envio: configure o gatilho para iniciar uma compilação após confirmações em uma solicitação de envio.

    • Origem: selecione 1a geração como sua origem.

      • Repositório: na lista de repositórios disponíveis, selecione um. Para conectar um repositório novo, consulte Conectar-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ê tiver selecionado Solicitação de envio como Evento, escolha as configurações para controlar se os eventos que não são comentários precisam de mais interação para acionar os builds. Escolha uma das opções a seguir para controlar se uma versão será executada automaticamente pelo acionador:

        • Obrigatório, exceto para proprietários e colaboradores: quando uma solicitação de envio é criada ou atualizada pelo proprietário do repositório ou por um usuário com permissões de gravação, as versões são executadas automaticamente pelo acionador. Se um colaborador externo iniciar a ação, as versões só serão executadas depois que um proprietário ou usuário com permissões de gravação comentar /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 uma solicitação de envio e incluir /gcbrun na descrição dela, a versão será executada após a criação da solicitação de envio. Quando uma solicitação de envio é criada ou atualizada por qualquer outro colaborador, as versões só são executadas depois que um proprietário ou usuário com permissões de gravação comenta /gcbrun na solicitação de envio. Consulte COMMENTS_ENABLED.

        • Não obrigatório: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, as versões são executadas automaticamente por acionadores. Consulte COMMENTS_DISABLED.

        No Bitbucket Server, os eventos sem comentário incluem ações como abrir, modificar e aprovar solicitações de envio.

        Eventos de comentários, que incluem adição, edição e exclusão de comentários, só acionarão builds se o comentário for de um usuário com permissões de gravação ou superior e o comentário contiver /gcbrun.

        Para mais informações sobre os tipos de eventos do Bitbucket Server, consulte a documentação do Bitbucket sobre gerenciamento de webhooks.

    • Configuração: selecione o arquivo de configuração do build localizado no repositório ou configure o build inline no acionador.

    • Tipo: selecione o tipo de configuração a ser usado para seu 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 da versão ou o diretório 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 do build inline. Clique em Abrir Editor para gravar seu 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 do build.

  5. Clique em Criar para gerar o gatilho do Bitbucket Server.

gcloud

Para criar um gatilho do Bitbucket Server usando comandos gcloud, você precisará executar o seguinte comando gcloud builds triggers create bitbucketserver no seu 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 ver 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, caso você queira definir o gatilho para criar determinadas ramificações.
  • TAG_NAME é uma expressão regular que corresponde à tag se você quiser que o acionador crie 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 seguinte modelo JSON.

{
    "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 ver 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 configurar o gatilho para criar determinadas ramificações.
  • TAG_NAME é a expressão regular da tag caso você queira configurar o acionador 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 seguinte comando curl 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 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 os gatilhos por nome e ver os resultados do build 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 para o Bitbucket Server.

A seguir