Criar repositórios com o Bitbucket Cloud

O Cloud Build permite criar gatilhos para criar repositórios hospedados no Bitbucket Cloud. É possível executar builds em resposta a eventos como envios de commits ou solicitações de mesclagem associadas ao seu repositório do Bitbucket Cloud.

Nesta página, explicamos como ativar gatilhos de build para uma instância do Bitbucket Cloud. Para mais informações, consulte Acionadores do Cloud Build e Repositórios do Cloud Build.

Antes de começar

Siga as instruções para se conectar a um host do Bitbucket Cloud.
  • Ative as APIs Cloud Build e Secret Manager, se alguma delas ainda não estiver ativada.

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    Ativar as APIs

Para criar um gatilho para um repositório do Bitbucket Cloud, você precisa ter uma conexão entre Google Cloud e seu repositório. Para criar uma conexão pelo app Bitbucket Cloud em Google Cloud, consulte Conectar a um repositório do Bitbucket Cloud.

Criar um gatilho do Bitbucket Cloud

Nesta seção, explicamos como criar um gatilho e vinculá-lo à sua instalação do Bitbucket Cloud.

Console do Google Cloud

Para criar gatilhos do Bitbucket Cloud usando o console Google Cloud , faça o seguinte:

  1. Abra a página Gatilhos no console do Google Cloud .

    Abrir a página Acionadores

  2. Selecione o projeto Google Cloud e clique em Abrir.

  3. Clique em Criar gatilho.

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

    • Nome: insira um nome para o gatilho.

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

      • Se o arquivo de configuração de build associado ao gatilho especificar um pool particular, o Cloud Build usará esse pool para executar o build. Nesse caso, a região especificada no gatilho precisa corresponder à região em que você criou o pool particular.
      • Se o arquivo de configuração de build associado ao gatilho não especificar um pool particular, o Cloud Build usará o pool padrão para executar o build na mesma região do gatilho.

    • Descrição (opcional): insira uma descrição para o 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 gatilho para iniciar um build em commits para uma solicitação de envio.

    • Origem: configure informações sobre seu repositório do Bitbucket Cloud:

      • Serviço de repositório: selecione repositórios do Cloud Build.

      • Geração de repositório: selecione 2ª geração como sua origem.

      • Repositório: na lista de repositórios disponíveis, selecione o repositório.

      • Ramificação ou Tag: especifique uma expressão regular correspondente ao valor da ramificação ou da tag. Para ver informações sobre a sintaxe aceitável de expressões regulares, consulte Sintaxe de RE2 (em inglês).

      • Controle de comentários: se você selecionou Solicitação de pull como seu Evento, escolha uma das seguintes opções para controlar se um build é executado automaticamente pelo gatilho:

        • Obrigatório, exceto para proprietários e colaboradores: quando um pedido de extração é criado ou atualizado por um proprietário ou colaborador do repositório, os builds são executados automaticamente pelo gatilho. Se um colaborador externo iniciar a ação, os builds serão executados somente depois que um proprietário ou colaborador comentar /gcbrun na solicitação de envio.

        • Obrigatório: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, os builds são executados somente depois que um proprietário ou colaborador comenta /gcbrun na solicitação de envio. Os builds são executados sempre que uma mudança é feita em uma solicitação de envio.

        • Não obrigatório: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, os builds são executados automaticamente por gatilhos.

    • Configuração: selecione o arquivo de configuração do build localizado no 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 localizado no seu repositório, informe o local do arquivo de configuração da versão ou do 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 prévia do comando docker build para sua build.

      • 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 o arquivo de configuração do build no consoleGoogle Cloud usando a sintaxe YAML ou JSON. Clique em Concluído para salvar a configuração de build.

  5. Clique em Criar para criar o gatilho do Bitbucket Cloud.

CLI da gcloud

Para criar gatilhos do Bitbucket Cloud usando comandos gcloud, execute o seguinte comando:

    gcloud builds triggers create bitbucket-cloud \
      --name=TRIGGER_NAME \
      --repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \
      --branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
      --build-config=BUILD_CONFIG_FILE \
      --region=REGION \
      --service-account=SERVICE-ACCOUNT

Em que:

  • TRIGGER_NAME é o nome do gatilho.
  • PROJECT_ID é o ID do projeto Google Cloud .
  • REGION é a região do gatilho.
  • CONNECTION_NAME é o nome da sua conexão do Bitbucket Cloud.
  • REPO_NAME é o nome do repositório.
  • BRANCH_PATTERN é o nome da ramificação no seu repositório para invocar o build.
  • TAG_PATTERN é o nome da tag no repositório para invocar o build.
  • BUILD_CONFIG_FILE é o caminho para seu arquivo de configuração da compilação.
  • SERVICE-ACCOUNT é a conta de serviço a ser usada para operações de gatilho e build.

API

Para criar um acionador do Bitbucket Cloud com a API, use o modelo JSON a seguir:

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "repository_event_config": {
      "repository": "REPO_NAME",
      "repository_type": "BITBUCKET_CLOUD",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
    }
}

Em que:

  • "REPO_NAME" é o nome do seu repositório.
  • "PULL_REQUEST_FILTER" é uma instância de PullRequestFilter, que define o filtro que permite ao Cloud Build acionar um build quando uma solicitação de envio correspondente é feita no Bitbucket Cloud.
  • "PUSH_FILTER" é uma instância de PushFilter, que define o filtro que permite ao Cloud Build acionar um build quando um push correspondente é feito no Bitbucket Cloud.

Insira 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 Google Cloud .

Compartilhamento de dados

Os dados enviados ao Bitbucket Cloud pelo Cloud Build ajudam você a identificar gatilhos por nome e ver os resultados do build nos repositórios do Bitbucket Cloud.

Os seguintes dados são compartilhados entre o Cloud Build e seu host do Bitbucket Cloud:

  • ID do projetoGoogle Cloud
  • Nome do gatilho

A seguir