É possível configurar o Cloud Build para enviar notificações de versão ao Slack, ao Google Chat, a um servidor SMTP, a um endpoint HTTP ou a 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
Ative as APIs Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
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 "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
Em que:
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 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 em que o notificador será implantado.
Execute o seguinte comando na raiz do repositório:
./setup.sh slack config-path -t template-path -s secret-name
Em que:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para seu arquivo de modelo de notificadores. O arquivo de modelo dos notificadores contém o modelo JSON inserido no Cloud Storage e representa a mensagem de notificação. É possível incluir o arquivo de modelo dos notificadores como um caminho usando essa variável ou no campouri
do 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.
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
Ative as APIs Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
Armazene as credenciais
Armazene a senha da conta de e-mail do remetente no Gerenciador de secrets:
Abra a página "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
Em que:
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
. Esses arquivos referem-se 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ções 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 em que o notificador será implantado.
Execute o seguinte comando na raiz do repositório:
./setup.sh smtp config-path -t template-path -s secret-name
Em que:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para seu arquivo de modelo de notificadores. O arquivo de modelo dos notificadores contém o modelo JSON inserido no Cloud Storage e representa a mensagem de notificação. É possível incluir o arquivo de modelo dos notificadores como um caminho usando essa variável ou no campouri
do 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.
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
Ative as APIs Cloud Build, Cloud Run, Pub/Sub, and BigQuery.
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.
Você verá a guia Editar acesso.
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 refere-se 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 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 em que o notificador será implantado.
Execute o seguinte comando na raiz do repositório:
./setup.sh bigquery -t config-path -t template-path
Em que:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para seu arquivo de modelo de notificadores. O arquivo de modelo dos notificadores contém o modelo JSON inserido no Cloud Storage e representa a mensagem de notificação. É possível incluir o 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
Ative as APIs Cloud Build, Cloud Run, and Pub/Sub.
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
Em que:
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ções 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 em que o notificador será implantado.
Execute o seguinte comando na raiz do repositório:
./setup.sh http -t config-path
Em que:
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
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
Ative as APIs Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
Como receber e armazenar credenciais
Crie 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 "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 ao 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 versão:
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 referenciar o caminho do URL do webhook do Google Chat armazenado no Secret Manager. 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 Google Chat.
Para ver o exemplo, consulte o arquivo de configuração do notificador.
Como executar o script de automação
Para automatizar a configuração de notificações 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 em que o notificador será implantado.
Execute o seguinte comando na raiz do repositório:
./setup.sh googlechat config-path -s secret-name
Em que:
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
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
Ative as APIs Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
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 "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 criado pelos problemas do GitHub:
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 do modelo para o notificador de problemas do GitHub.
É possível definir campos adicionais a partir dos parâmetros body disponíveis no endpoint da endpoint de API 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 versão:
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 referenciar o 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 em que o upload do modelo será feito, 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.
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ções 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 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
Em que:
config-path
é o caminho para o arquivo de configuração dos notificadores.template-path
é o caminho para seu arquivo de modelo de notificadores. O arquivo de modelo dos notificadores contém o modelo JSON inserido no Cloud Storage e representa a mensagem de notificação. É possível incluir o arquivo de modelo dos notificadores como um caminho usando essa variável ou no campouri
do 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.
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.