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:
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 decloud-builds
como o nome do tópico para builds desse arquivo. Como resultado, se você criar um tópicocloud-builds
e deixaroptions.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:
- Configurar notificações do BigQuery
- Configurar notificações de problemas do GitHub
- Configurar notificações do Google Chat
- Configurar notificações HTTP
- Configurar notificações do Slack
- Configurar notificações SMTP
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
- Saiba como configurar os notificadores BigQuery, GitHub Issue, Google Chat, HTTP, Slack ou SMTP.
- Saiba como automatizar a configuração de notificações.
- Saiba como criar seu próprio notificador.