Notificadores do Cloud Build

Os notificadores do Cloud Build são imagens do Docker que podem ser executadas como contêineres no Cloud Run. Quando solicitados por um aplicativo de assinante, os notificadores do Cloud Build usam assinaturas push para enviar mensagens a um serviço configurado, como o Slack ou um servidor SMTP.

Esta página oferece uma visão geral dos notificadores do Cloud Build.

Notificadores do Cloud Build

O Cloud Build envia todas as atualizações do evento do build com os metadados do build para o Pub/Sub no tópico cloud-builds ou em um tópico definido pelo usuário. Os notificadores do Cloud Build podem ser configurados para ouvir esse tópico, filtrar as mensagens recebidas e enviar mensagens para o serviço pelo Cloud Run.

Todos os notificadores usam uma especificação comum do YAML para configuração, armazenada no Cloud Storage. Se o serviço escolhido exigir autenticação, as credenciais dele serão armazenadas no Secret Manager. O Cloud Run encaminha sua mensagem e envia as notificações para seu serviço.

O diagrama a seguir mostra como o Cloud Build interage com outros produtos Google Cloud , como o Pub/Sub e o Cloud Run, para enviar notificações:

Diagrama dos notificadores do Cloud Build

Tópicos do Pub/Sub para notificações de build

Por padrão, o Cloud Build envia notificações de build para um tópico do Pub/Sub chamado cloud-builds, se houver um. Também é possível criar um tópico personalizado do Pub/Sub para receber notificações de build. No arquivo de configuração do build, o campo options.pubsubTopic define o nome do tópico para o qual o Cloud Build envia notificações:

  • Se options.pubsubTopic for deixado em branco, o Cloud Build vai usar um valor padrão de cloud-builds como o nome do tópico para builds desse arquivo. Como resultado, se você criar um tópico cloud-builds e deixar options.pubsubTopic indefinido em todos os arquivos de configuração de build, esse tópico vai receber todas as notificações de build.

  • Se você especificar um nome de tópico personalizado em options.pubsubTopic, o Cloud Build vai enviar notificações para esse arquivo de configuração de build para esse tópico. Os nomes de tópicos personalizados são úteis quando você não quer que todas as notificações de build sejam publicadas no mesmo tópico.

    Ao usar um nome de tópico personalizado em um arquivo de configuração de build, também é necessário atribuir o papel roles/pubsub.publisher a qualquer conta de serviço que não seja a conta de serviço padrão do Cloud Build.

Publicar notificações de build em tópicos do Pub/Sub em vários projetos

Para publicar notificações de build em um tópico do Pub/Sub em um projeto diferente de onde o build foi executado, forneça o papel roles/pubsub.publisher à conta de serviço no projeto de destino.

Por exemplo, você tem o Projeto A e o Projeto B. Você executa um build no projeto A usando a conta de serviço A e quer publicar notificações de build em um tópico do Pub/Sub no projeto B. Para fazer isso, conceda à conta de serviço A o papel roles/pubsub.publisher no projeto B executando o seguinte comando:

  gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'

Você pode usar uma configuração de build como a seguinte, que permite executar um build no Projeto A e publicar notificações de build no Projeto B:

  steps:
    - name: ubuntu
      args:
        - pwd
  serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
  options:
    pubsubTopic: projects/ProjectB/topics/CustomTopic
    logging: desired-logging-option

Notificadores compatíveis fornecidos pelo Cloud Build

O Cloud Build fornece e mantém imagens de notificador implantáveis no repositório cloud-build-notifiers. A tabela a seguir lista os notificadores disponíveis:

Notificador Descrição
bigquery grava dados de versão em uma tabela do BigQuery
githubissues usa um webhook do GitHub para criar problemas em um repositório do GitHub
googlechat usa um webhook do Google Chat para postar mensagens em um espaço do Google Chat
http envia um payload JSON para outro endpoint HTTP
slack usa um webhook do Slack para postar mensagens em um canal do Slack
smtp envia e-mails por um servidor SMTP

Para saber mais sobre como configurar cada notificador, consulte a página correspondente para cada serviço:

Automatizar a configuração de notificações

O Cloud Build oferece um script de configuração que pode ser usado para automatizar a configuração de notificação para notificadores compatíveis com o Cloud Build.

Para saber como configurar notificações para notificadores compatíveis com o Cloud Build, consulte Como automatizar a configuração de notificações.

Criar seu próprio notificador

Além dos notificadores mantidos pelo Cloud Build, como Slack ou SMTP, é possível usar a biblioteca fornecida no repositório cloud-build-notifiers para criar seu próprio notificador.

Para saber como criar seu próprio notificador, consulte Como criar seu próprio notificador.

A seguir