É possível configurar o Cloud Build para enviar notificações sobre builds para o Slack, o Google Chat, servidor SMTP, um endpoint HTTP ou uma instância do BigQuery usando notificadores do Cloud Build. Nesta página, explicamos como automatizar o processo de configuração do notificador desejado.
Como 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 configurar notificações usando o script de configuração:
Slack
Configuração
Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.
Ativando APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Como receber e armazenar credenciais
Crie um aplicativo Slack para o espaço de trabalho do Slack ao qual você quer enviar notificações.
Ative webhooks de entrada para postar mensagens no Slack pelo Cloud Build.
Navegue até seu aplicativo do Slack para localizar o URL do webhook de entrada. O URL será semelhante ao seguinte:
http://hooks.slack.com/services/...
Armazene o URL do webhook de entrada no Gerenciador de secrets:
Abra a página do Secret Manager no console do Google Cloud:
Clique em Criar secret.
Insira um nome para o secret.
Em Valor do secret, adicione o URL de webhook de entrada do aplicativo Slack.
Para salvar o secret, clique em Criar secret.
Como gravar um arquivo de configuração de notificação
Grave um arquivo de configuração do notificador para configurar seu notificador do Slack e filtrar eventos de build:
No exemplo de arquivo de configuração do notificador de exemplo, o campo filter
usa Common Expression Language com a variável disponível, build
, para filtrar os eventos de build com um status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: SlackNotifier
metadata:
name: example-slack-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
webhookUrl:
secretRef: webhook-url
template:
type: golang
uri: gs://example-gcs-bucket/slack.json
secrets:
- name: webhook-url
value: projects/project-id/secrets/secret-name/versions/latest
Onde:
webhook-url
é a variável de configuração usada neste exemplo para fazer referência ao caminho do URL do webhook do Slack armazenado no gerenciador de secrets. O nome da variável especificada aqui precisa corresponder ao camponame
emsecrets
.project-id
é o ID do seu projeto do Google Cloud.secret-name
é o nome do secret que contém o URL do webhook do Slack.- O campo
uri
faz referência ao arquivoslack.json
. Esse arquivo contém um modelo JSON hospedado no Cloud Storage e representa sua mensagem de notificação para o espaço do Slack.
Para ver o exemplo, consulte o arquivo de configuração do notificador para o notificador do Slack.
Como executar o script de automação
Para automatizar a configuração de notificações para o notificador:
Clone o repositório do cloud-build-notifiers.
Configure a Google Cloud CLI com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Em que:
project-id
é o ID do projeto no Google Cloud.region
é a região para implantar o notificador.
Execute o seguinte comando na raiz do repositório:
./setup.sh slack config-path -t template-path -s secret-name
Onde:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para o arquivo de modelo dos notificadores. O arquivo de modelo de notificador contém o modelo JSON armazenado no Cloud Storage e representa sua mensagem de notificação. É possível incluir o arquivo de modelo do notificador como um caminho usando essa variável ou no campouri
do arquivo de configuração do notificador.secret-name
é o nome do secret armazenado no Gerenciador de secrets.
Depois de executar o script, você verá a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O notificador já está configurado. Veja o script completo no
repositório cloud-build-notifiers ou execute ./setup.sh --help
para ver instruções de uso associadas ao script.
SMTP
Configuração
Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.
Ativando APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Armazene as credenciais
Armazene a senha da conta de e-mail do remetente no Gerenciador de secrets:
Abra a página do Secret Manager no console do Google Cloud:
Clique em Criar secret.
Insira um nome para o secret.
Em Valor do secret, adicione a senha da conta de e-mail do remetente.
Para salvar o secret, clique em Criar secret.
Como gravar um arquivo de configuração de notificação
Grave um arquivo de configuração do notificador para configurar o notificador SMTP e filtrar os eventos de build:
No exemplo de arquivo de configuração do notificador de exemplo, o campo filter
usa Common Expression Language com a variável disponível, build
, para filtrar os eventos de build com um status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: SMTPNotifier
metadata:
name: example-smtp-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
server: server-host-name
port: "port"
sender: sender-email
from: from-email
recipients:
- recipient-email
# optional: more emails here
password:
secretRef: smtp-password
template:
type: golang
uri: gs:example-gcs-bucket/smtp.html
secrets:
- name: smtp-password
value: projects/project-id/secrets/secret-name/versions/latest
Onde:
server-host-name
é o endereço do seu servidor SMTP.port
é a porta que processará as solicitações de SMTP. Esse valor precisa ser especificado como uma string.sender-email
é o endereço de e-mail da conta do remetente que é vista pelo server-host-name especificado.from-email
é o endereço de e-mail visto pelos destinatários.recipient-email
é uma lista de um ou mais endereços de e-mail para receber mensagens do remetente.smtp-password
é a variável de configuração usada neste exemplo para fazer referência à senha da conta de e-mail do remetente armazenada no Gerenciador de secrets. O nome da variável especificado aqui precisa corresponder ao camponame
emsecrets
.project-id
é o ID do seu projeto do Google Cloud.secret-name
é o nome do secret que contém a senha da conta de e-mail do remetente.- O campo
uri
faz referência ao arquivosmtp.html
. Esse arquivo se refere a um modelo HTML hospedado no Cloud Storage e representa seu e-mail de notificação.
Para ver o exemplo, consulte o arquivo de configuração do notificador para o notificador SMTP.
Como executar o script de automação
Para automatizar a configuração de notificação do notificador:
Clone o repositório do cloud-build-notifiers.
Configure a Google Cloud CLI com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Em que:
project-id
é o ID do projeto no Google Cloud.region
é a região para implantar o notificador.
Execute o seguinte comando na raiz do repositório:
./setup.sh smtp config-path -t template-path -s secret-name
Onde:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para o arquivo de modelo dos notificadores. O arquivo de modelo de notificador contém o modelo JSON armazenado no Cloud Storage e representa sua mensagem de notificação. É possível incluir o arquivo de modelo do notificador como um caminho usando essa variável ou no campouri
do arquivo de configuração do notificador.secret-name
é o nome do secret armazenado no Gerenciador de secrets.
Depois de executar o script, você verá a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O notificador já está configurado. Veja o script completo no
repositório cloud-build-notifiers ou execute ./setup.sh --help
para ver instruções de uso associadas ao script.
BigQuery
Configuração
Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.
Ativando APIs
Enable the Cloud Build, Cloud Run, Pub/Sub, and BigQuery APIs.
Como conceder permissões
Conceda permissão à conta de serviço do Cloud Run para criar e gravar tabelas do BigQuery e receber dados do Artifact Registry relacionados à versão:
Acesse a página "IAM" no Console do Google Cloud.
Localize a conta de serviço padrão do Compute Engine associada ao seu projeto:
Sua conta de serviço padrão do Compute Engine será semelhante à seguinte, em que project-number é o número do projeto:
project-number-compute@developer.gserviceaccount.com
Clique no ícone de lápis na linha que contém sua conta de serviço padrão do Compute Engine.
A guia Editar acesso vai aparecer.
Clique em Adicionar outro papel.
Adicione os seguintes papéis:
- Leitor do Artifact Registry
Editor de dados do BigQuery
O papel Leitor do Artifact Registry permite buscar dados para as imagens. O Editor de dados do BigQuery dá acesso de leitura e gravação aos seus dados.
Clique em Save.
Como gravar um arquivo de configuração de notificação
Grave um arquivo de configuração do notificador para configurar seu notificador do BigQuery e filtrar eventos de build:
No exemplo de arquivo de configuração de notificador a seguir, o campo filter
usa Common Expression Language com a variável build
para filtrar eventos de build com um ID de gatilho especificado:
apiVersion: cloud-build-notifiers/v1
kind: BigQueryNotifier
metadata:
name: example-bigquery-notifier
spec:
notification:
filter: build.build_trigger_id == "123e4567-e89b-12d3-a456-426614174000"
delivery:
table: projects/project-id/datasets/dataset-name/tables/table-name
template:
type: golang
uri: gs://example-gcs-bucket/bq.json
Em que:
project-id
é o ID do seu projeto do Google Cloud.dataset-name
é o nome que você quer dar ao conjunto de dados.table-name
é o nome que você quer dar à tabela.
O table-name no arquivo de configuração do notificador pode se referir a:
- uma tabela inexistente
- uma tabela vazia sem um esquema
uma tabela atual com um esquema que corresponde às especificações de esquema no notificador do BigQuery;
O campo
uri
faz referência ao arquivobq.json
. Esse arquivo se refere a um modelo JSON hospedado no Cloud Storage e representa as informações a serem inseridas na tabela do BigQuery.
Para ver o exemplo, consulte o arquivo de configuração do notificador do notificador do BigQuery.
Como executar o script de automação
Para automatizar a configuração de notificações para o notificador:
Clone o repositório do cloud-build-notifiers.
Configure a Google Cloud CLI com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Em que:
project-id
é o ID do projeto no Google Cloud.region
é a região para implantar o notificador.
Execute o seguinte comando na raiz do repositório:
./setup.sh bigquery -t config-path -t template-path
Onde:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para o arquivo de modelo dos notificadores. O arquivo de modelo de notificador contém o modelo JSON armazenado no Cloud Storage e representa sua mensagem de notificação. Você pode incluir seu arquivo de modelo dos notificadores como um caminho usando essa variável ou no campouri
do arquivo de configuração dos notificadores.
Depois de executar o script, você verá a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O notificador já está configurado. Veja o script completo no repositório do cloud-build-notifier ou execute
./setup.sh --help
para ver instruções de uso associadas ao script.
HTTP
Configuração
Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.
Ativando APIs
Enable the Cloud Build, Cloud Run, and Pub/Sub APIs.
Como gravar um arquivo de configuração de notificação
Grave um arquivo de configuração para configurar seu notificador do HTTP e filtrar eventos de build:
No exemplo de arquivo de configuração do notificador de exemplo, o campo filter
usa Common Expression Language com a variável disponível, build
, para filtrar os eventos de build com um status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: HTTPNotifier
metadata:
name: example-http-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
# The `http(s)://` protocol prefix is required.
url: url
template:
type: golang
uri: gs://example-gcs-bucket/http.json
Onde:
url
é a variável de configuração usada neste exemplo para especificar o URL da solicitação.- url é o URL que você quer especificar como seu servidor destinatário.
- O campo
uri
faz referência ao arquivohttp.json
. Esse arquivo se refere a um modelo JSON hospedado no Cloud Storage e representa o payload do JSON para o endpoint do webhook.
Para ver o exemplo, consulte o arquivo de configuração do notificador para o notificador do HTTP.
Como executar o script de automação
Para automatizar a configuração de notificação do notificador:
Clone o repositório do cloud-build-notifiers.
Configure a Google Cloud CLI com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Em que:
project-id
é o ID do projeto no Google Cloud.region
é a região para implantar o notificador.
Execute o seguinte comando na raiz do repositório:
./setup.sh http -t config-path
Onde:
config-path
é o caminho para o arquivo de configuração dos notificadores.
Depois de executar o script, você verá a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O notificador já está configurado. Veja o script completo no repositório do cloud-build-notifier ou execute ./setup.sh --help
para ver instruções de uso associadas ao script.
Google Chat
Como configurar
Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.
Ativando APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Como receber e armazenar credenciais
Criar um espaço no Google Chat.
No espaço criado, crie um webhook de entrada. para postar mensagens do Cloud Build no Google Chat. Seu URL será semelhante a este:
https://chat.googleapis.com/v1/spaces/...
Armazene o URL do webhook de entrada no Gerenciador de secrets:
Abra a página do Secret Manager no console do Google Cloud:
Clique em Criar secret.
Insira um nome para o secret.
Em Valor do secret, adicione o URL do webhook de entrada do seu espaço do Google Chat.
Para salvar o secret, clique em Criar secret.
Como gravar um arquivo de configuração de notificação
Grave um arquivo de configuração do notificador para configurar seu notificador do Google Chat e filtrar eventos de build:
No exemplo de arquivo de configuração do notificador de exemplo, o campo filter
usa Common Expression Language com a variável disponível, build
, para filtrar os eventos de build com um status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: GoogleChatNotifier
metadata:
name: example-googlechat-notifier
spec:
notification:
filter: build.status == Build.Status.SUCCESS
delivery:
webhookUrl:
secretRef: webhook-url
secrets:
- name: webhook-url
value: projects/project-id/secrets/secret-name/versions/latest
Em que:
webhook-url
é a variável de configuração usada neste exemplo para fazer referência ao caminho do URL do webhook do Google Chat armazenado no Gerenciador de secrets. O nome da variável especificada aqui precisa corresponder ao camponame
emsecrets
.project-id
é o ID do seu projeto do Google Cloud.secret-name
é o nome do secret que contém o webhook do Google Chat. URL.
Para conferir o exemplo, consulte o arquivo de configuração do notificador para o notificador do Google Chat.
Como executar o script de automação
Para automatizar a configuração de notificações para o notificador:
Clone o repositório do cloud-build-notifiers.
Configure a Google Cloud CLI com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Em que:
project-id
é o ID do projeto no Google Cloud.region
é a região em que o notificador será implantado.
Execute o seguinte comando na raiz do repositório:
./setup.sh googlechat config-path -s secret-name
Onde:
config-path
é o caminho para o arquivo de configuração dos notificadores.secret-name
é o nome do secret armazenado no Gerenciador de secrets.
Depois de executar o script, você verá a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O notificador já está configurado. Veja o script completo no
repositório cloud-build-notifiers ou execute ./setup.sh --help
para ver instruções de uso associadas ao script.
Problemas do GitHub
Como configurar
Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.
Ativando APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Como receber e armazenar credenciais
Crie um token de acesso pessoal do GitHub:
- Acesse as configurações do GitHub para criar um novo token.
Selecione o escopo
repo
.Clique em Gerar token.
Armazene seu token no Secret Manager:
Abra a página do Secret Manager no console do Google Cloud:
Clique em Criar secret.
Insira um nome para o secret.
Em Valor do secret, adicione seu token do GitHub.
Para salvar o secret, clique em Criar secret.
Como gravar um arquivo de configuração de modelo
Escreva um arquivo de configuração de modelo para descrever o formato que os problemas do GitHub criados devem assumir:
No arquivo de configuração de modelo de exemplo a seguir, os campos title
e body
usam variáveis de substituição do build:
{
"title": "Build {{.Build.BuildTriggerId}}: {{.Build.Status}}",
"body": "[{{.Build.ProjectId}}] {{.Build.BuildTriggerId}} status: **{{.Build.Status}}**\n\n[View Logs]({{.Build.LogUrl}})"
}
Para ver o exemplo, consulte o arquivo de configuração de modelo para o notificador de problemas do GitHub.
É possível definir outros campos com base nos parâmetros de corpo disponíveis no endpoint da API do GitHub para criar um problema.
Como gravar um arquivo de configuração de notificação
Grave um arquivo de configuração do notificador para configurar seu notificador do Google Chat e filtrar eventos de build:
No exemplo de arquivo de configuração do notificador de exemplo, o campo filter
usa Common Expression Language com a variável disponível, build
, para filtrar os eventos de build com um status SUCCESS
:
apiVersion: cloud-build-notifiers/v1
kind: GitHubIssuesNotifier
metadata:
name: example-githubissues-notifier
spec:
notification:
filter: build.status == Build.Status.FAILURE
template:
type: golang
uri: gs://project-id-notifiers-config/template-file-name
delivery:
githubToken:
secretRef: github-token
githubRepo: myuser/myrepo
secrets:
- name: github-token
value: projects/project-id/secrets/secret-name/versions/latest
Em que:
githubToken
é a variável de configuração usada neste exemplo para fazer referência ao token do GitHub armazenado no Secret Manager. O nome da variável especificada aqui precisa corresponder ao camponame
emsecrets
.project-id-notifiers-config
é o local para fazer upload do modelo, e o bucket será criado se ainda não existir.template-file-name
é o nome do arquivo de modelo.myuser/myrepo
é o nome do repositório em que os problemas serão criados.project-id
é o ID do seu projeto do Google Cloud.secret-name
é o nome do secret que contém o token do GitHub.
Para ver o exemplo, consulte o arquivo de configuração do notificador do notificador do Google Chat.
Para ver outros campos que podem ser filtrados, consulte o recurso Build. Para ver mais exemplos de filtragem, consulte Como usar a CEL para filtrar eventos do build.
Como executar o script de automação
Para automatizar a configuração de notificação do notificador:
Clone o repositório do cloud-build-notifiers.
Configure a CLI do Google Cloud com o ID e a região do projeto:
gcloud config set project project-id gcloud config set run/region region
Em que:
project-id
é o ID do projeto no Google Cloud.region
é a região em que o notificador será implantado.
Execute o seguinte comando na raiz do repositório:
./setup.sh githubissues config-path -t template-path -s secret-name
Onde:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para o arquivo de modelo dos notificadores. O arquivo de modelo de notificador contém o modelo JSON armazenado no Cloud Storage e representa sua mensagem de notificação. É possível incluir o arquivo de modelo do notificador como um caminho usando essa variável ou no campouri
do arquivo de configuração do notificador.secret-name
é o nome do secret armazenado no Gerenciador de secrets.
Depois de executar o script, você verá a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O notificador já está configurado. Veja o script completo no
repositório cloud-build-notifiers ou execute ./setup.sh --help
para ver instruções de uso associadas ao script.
A seguir
- Saiba mais sobre os notificadores do Cloud Build.
- Saiba como se inscrever para criar notificações.
- Saiba como gravar um arquivo de configuração da compilação do Cloud Build.