Pode configurar o Cloud Build para lhe enviar notificações de compilação para o Slack, o Google Chat, um servidor SMTP, um ponto final HTTP ou uma instância do BigQuery através dos notificadores do Cloud Build. Esta página explica como pode automatizar o processo de configuração do notificador pretendido.
Automatizar a configuração de notificações
O Cloud Build fornece um script de configuração que pode usar para automatizar a configuração de notificações. Para configurar as notificações através do script de configuração:
Slack
A configurar o
As secções seguintes descrevem os passos que tem de concluir antes de automatizar a configuração de notificações para o seu notificador.
Ativar APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Obter e armazenar credenciais
Crie uma app Slack para o espaço de trabalho do Slack para o qual quer enviar notificações.
Ative os webhooks recebidos para publicar mensagens do Cloud Build no Slack.
Navegue para a sua app Slack para localizar o URL do webhook de entrada. O URL tem um aspeto semelhante ao seguinte:
http://hooks.slack.com/services/...
Armazene o URL do webhook recebido no Secret Manager:
Abra a página Secret Manager na Google Cloud consola:
Clique em Criar segredo.
Introduza um nome para o segredo.
Em Valor secreto, adicione o URL do webhook recebido para a sua app Slack.
Para guardar o segredo, clique em Criar segredo.
Escrever um ficheiro de configuração do notificador
Escreva um ficheiro de configuração do notificador para configurar o notificador do Slack e filtre os eventos de compilação:
No ficheiro de configuração do notificador do exemplo seguinte, o campo filter
usa a linguagem de expressão comum com a variável disponível, build
, para filtrar eventos de compilação com um estado 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 Secret Manager. O nome da variável que especificar aqui deve corresponder ao camponame
emsecrets
.project-id
é o ID do seu Google Cloud projeto.secret-name
é o nome do seu segredo que contém o URL do webhook do Slack.- O campo
uri
faz referência ao ficheiroslack.json
. Este ficheiro contém um modelo JSON alojado no armazenamento na nuvem e representa a sua mensagem de notificação para o seu espaço do Slack.
Para ver o exemplo, consulte o ficheiro de configuração do notificador para o notificador do Slack.
Executar o script de automatização
Para automatizar a configuração de notificações para o seu notificador:
Clone o repositório cloud-build-notifiers.
Configure a CLI do Google Cloud com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Onde:
project-id
é o ID do seu Google Cloud projeto.region
é a região para implementar 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 ficheiro de configuração dos notificadores.template-path
é o caminho para o ficheiro de modelo dos seus notificadores. O ficheiro de modelo de notificadores contém o modelo JSON alojado no armazenamento na nuvem e representa a sua mensagem de notificação. Pode incluir o ficheiro de modelo dos notificadores como um caminho através desta variável ou no campouri
do ficheiro de configuração dos notificadores.secret-name
é o nome do seu segredo armazenado no Secret Manager.
Depois de executar o script, é apresentada a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O seu notificador já está configurado. Pode ver o script completo no repositório cloud-build-notifiers ou executar ./setup.sh --help
para ver instruções de utilização associadas ao script.
SMTP
A configurar o
As secções seguintes descrevem os passos que tem de concluir antes de automatizar a configuração de notificações para o seu notificador.
Ativar APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Armazenamento de credenciais
Armazene a palavra-passe da conta de email do remetente no Secret Manager:
Abra a página Secret Manager na Google Cloud consola:
Clique em Criar segredo.
Introduza um nome para o segredo.
Em Valor secreto, adicione a palavra-passe da conta de email do remetente.
Para guardar o segredo, clique em Criar segredo.
Escrever um ficheiro de configuração do notificador
Escreva um ficheiro de configuração do notificador para configurar o notificador SMTP e filtre os eventos de compilação:
No ficheiro de configuração do notificador do exemplo seguinte, o campo filter
usa a linguagem de expressão comum com a variável disponível, build
, para filtrar eventos de compilação com um estado 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 processa os pedidos SMTP. Este valor deve ser especificado como uma string.sender-email
é o endereço de email da conta do remetente que é visto pelo server-host-name especificado.from-email
é o endereço de email que os destinatários veem.recipient-email
é uma lista de um ou mais endereços de email para receber mensagens do remetente.smtp-password
é a variável de configuração usada neste exemplo para fazer referência à palavra-passe da conta de email do remetente armazenada no Secret Manager. O nome da variável que especificar aqui deve corresponder ao camponame
emsecrets
.project-id
é o ID do seu Google Cloud projeto.secret-name
é o nome do seu segredo que contém a palavra-passe da conta de email do remetente.- O campo
uri
faz referência ao ficheirosmtp.html
. Este ficheiro refere-se a um modelo HTML alojado no Cloud Storage e representa o seu email de notificação.
Para ver o exemplo, consulte o ficheiro de configuração do notificador para o notificador SMTP.
Executar o script de automatização
Para automatizar a configuração de notificações para o seu notificador:
Clone o repositório cloud-build-notifiers.
Configure a CLI do Google Cloud com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Onde:
project-id
é o ID do seu Google Cloud projeto.region
é a região para implementar 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 ficheiro de configuração dos notificadores.template-path
é o caminho para o ficheiro de modelo dos seus notificadores. O ficheiro de modelo de notificadores contém o modelo JSON alojado no armazenamento na nuvem e representa a sua mensagem de notificação. Pode incluir o ficheiro de modelo dos notificadores como um caminho através desta variável ou no campouri
do ficheiro de configuração dos notificadores.secret-name
é o nome do seu segredo armazenado no Secret Manager.
Depois de executar o script, é apresentada a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O seu notificador já está configurado. Pode ver o script completo no repositório cloud-build-notifiers ou executar ./setup.sh --help
para ver instruções de utilização associadas ao script.
BigQuery
A configurar o
As secções seguintes descrevem os passos que tem de concluir antes de automatizar a configuração de notificações para o seu notificador.
Ativar APIs
Enable the Cloud Build, Cloud Run, Pub/Sub, and BigQuery APIs.
Conceder autorizações
Conceda à conta de serviço do Cloud Run autorização para criar e escrever tabelas do BigQuery, bem como autorização para obter dados do Artifact Registry relacionados com a sua compilação:
Aceda à página IAM na Google Cloud consola:
Localize a conta de serviço predefinida do Compute Engine associada ao seu projeto:
A sua conta de serviço predefinida do Compute Engine tem um aspeto semelhante ao seguinte, em que project-number é o número do seu projeto:
project-number-compute@developer.gserviceaccount.com
Clique no ícone de lápis na linha que contém a conta de serviço predefinida do Compute Engine.
É apresentado o separador Acesso de edição.
Clique em Adicionar outra função.
Adicione as seguintes funções:
- Leitor do Artifact Registry
Editor de dados do BigQuery
A função Leitor do Artifact Registry permite-lhe obter dados para as suas imagens. A função de editor de dados do BigQuery dá-lhe acesso de leitura e escrita aos seus dados.
Clique em Guardar.
Escrever um ficheiro de configuração do notificador
Escreva um ficheiro de configuração do notificador para configurar o notificador do BigQuery e filtre os eventos de compilação:
No ficheiro de configuração do notificador de exemplo seguinte, o campo filter
usa a linguagem de expressão comum com a variável build
para filtrar eventos de compilação com um ID de acionador 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
Onde:
project-id
é o ID do seu Google Cloud projeto.dataset-name
é o nome que quer dar ao seu conjunto de dados.table-name
é o nome que quer dar à tabela.
O table-name no ficheiro de configuração do notificador pode referir-se a:
- uma tabela inexistente
- uma tabela vazia sem um esquema
Uma tabela existente com um esquema que corresponde às especificações do esquema no notificador do BigQuery
O campo
uri
faz referência ao ficheirobq.json
. Este ficheiro refere-se a um modelo JSON alojado no Cloud Storage e representa as informações a inserir na sua tabela do BigQuery.
Para ver o exemplo, consulte o ficheiro de configuração do notificador para o notificador do BigQuery.
Executar o script de automatização
Para automatizar a configuração de notificações para o seu notificador:
Clone o repositório cloud-build-notifiers.
Configure a CLI do Google Cloud com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Onde:
project-id
é o ID do seu Google Cloud projeto.region
é a região para implementar 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 ficheiro de configuração dos notificadores.template-path
é o caminho para o ficheiro de modelo dos seus notificadores. O ficheiro de modelo de notificadores contém o modelo JSON alojado no armazenamento na nuvem e representa a sua mensagem de notificação. Pode incluir o ficheiro de modelo dos notificadores como um caminho através desta variável ou no campouri
do ficheiro de configuração dos notificadores.
Depois de executar o script, é apresentada a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O seu notificador já está configurado. Pode ver o script completo no repositório cloud-build-notifiers ou executar
./setup.sh --help
para ver instruções de utilização associadas ao script.
HTTP
A configurar o
As secções seguintes descrevem os passos que tem de concluir antes de automatizar a configuração de notificações para o seu notificador.
Ativar APIs
Enable the Cloud Build, Cloud Run, and Pub/Sub APIs.
Escrever um ficheiro de configuração do notificador
Escreva um ficheiro de configuração do notificador para configurar o notificador HTTP e filtrar eventos de compilação:
No ficheiro de configuração do notificador do exemplo seguinte, o campo filter
usa a linguagem de expressão comum com a variável disponível, build
, para filtrar eventos de compilação com um estado 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 do seu pedido.- url é o URL que quer especificar como o seu servidor destinatário.
- O campo
uri
faz referência ao ficheirohttp.json
. Este ficheiro refere-se a um modelo JSON alojado no Cloud Storage e representa a carga útil JSON para o ponto final do webhook.
Para ver o exemplo, consulte o ficheiro de configuração do notificador para o notificador HTTP.
Executar o script de automatização
Para automatizar a configuração de notificações para o seu notificador:
Clone o repositório cloud-build-notifiers.
Configure a CLI do Google Cloud com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Onde:
project-id
é o ID do seu Google Cloud projeto.region
é a região para implementar o notificador.
Execute o seguinte comando na raiz do repositório:
./setup.sh http -t config-path
Onde:
config-path
é o caminho para o ficheiro de configuração dos notificadores.
Depois de executar o script, é apresentada a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O seu notificador já está configurado. Pode ver o script completo no repositório cloud-build-notifiers ou executar ./setup.sh --help
para ver instruções de utilização associadas ao script.
Google Chat
A configurar o
As secções seguintes descrevem os passos que tem de concluir antes de automatizar a configuração de notificações para o seu notificador.
Ativar APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Obter e armazenar credenciais
Crie um espaço no Google Chat.
No espaço criado, crie um webhook recebido para publicar mensagens do Cloud Build no Google Chat. O URL tem um aspeto semelhante ao seguinte:
https://chat.googleapis.com/v1/spaces/...
Armazene o URL do webhook recebido no Secret Manager:
Abra a página Secret Manager na Google Cloud consola:
Clique em Criar segredo.
Introduza um nome para o segredo.
Em Valor secreto, adicione o URL do webhook recebido para o seu espaço do Google Chat.
Para guardar o segredo, clique em Criar segredo.
Escrever um ficheiro de configuração do notificador
Escreva um ficheiro de configuração do notificador para configurar o seu notificador do Google Chat e filtre por eventos de compilação:
No ficheiro de configuração do notificador do exemplo seguinte, o campo filter
usa a linguagem de expressão comum com a variável disponível, build
, para filtrar eventos de compilação com um estado 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
Onde:
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 Secret Manager. O nome da variável que especificar aqui deve corresponder ao camponame
emsecrets
.project-id
é o ID do seu Google Cloud projeto.secret-name
é o nome do seu segredo que contém o URL do webhook do Google Chat.
Para ver o exemplo, consulte o ficheiro de configuração do notificador para o notificador do Google Chat.
Executar o script de automatização
Para automatizar a configuração de notificações para o seu notificador:
Clone o repositório cloud-build-notifiers.
Configure a CLI do Google Cloud com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Onde:
project-id
é o ID do seu Google Cloud projeto.region
é a região para implementar o notificador.
Execute o seguinte comando na raiz do repositório:
./setup.sh googlechat config-path -s secret-name
Onde:
config-path
é o caminho para o ficheiro de configuração dos notificadores.secret-name
é o nome do seu segredo armazenado no Secret Manager.
Depois de executar o script, é apresentada a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O seu notificador já está configurado. Pode ver o script completo no repositório cloud-build-notifiers ou executar ./setup.sh --help
para ver instruções de utilização associadas ao script.
GitHub Issues
A configurar o
As secções seguintes descrevem os passos que tem de concluir antes de automatizar a configuração de notificações para o seu notificador.
Ativar APIs
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Obter e armazenar credenciais
Crie um token de acesso pessoal do GitHub:
- Aceda às definições do GitHub para criar um novo token.
Selecione o âmbito
repo
.Clique em Gerar token
Armazene o seu token no Secret Manager:
Abra a página Secret Manager na Google Cloud consola:
Clique em Criar segredo.
Introduza um nome para o segredo.
Em Valor secreto, adicione o seu token do GitHub.
Para guardar o segredo, clique em Criar segredo.
Escrever um ficheiro de configuração de modelo
Escreva um ficheiro de configuração de modelo para descrever o formato que os problemas do GitHub criados devem ter:
No ficheiro de configuração do modelo de exemplo seguinte, os campos title
e body
usam variáveis de substituição da compilação:
{
"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 ficheiro de configuração do modelo para o notificador de problemas do GitHub.
É possível definir campos adicionais a partir dos parâmetros do corpo disponíveis no ponto final da API GitHub para criar um problema.
Escrever um ficheiro de configuração do notificador
Escreva um ficheiro de configuração do notificador para configurar o seu notificador do Google Chat e filtre por eventos de compilação:
No ficheiro de configuração do notificador do exemplo seguinte, o campo filter
usa a linguagem de expressão comum com a variável disponível, build
, para filtrar eventos de compilação com um estado 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
Onde:
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 que especificar aqui deve corresponder ao camponame
emsecrets
.project-id-notifiers-config
é a localização onde o modelo vai ser carregado e o contentor vai ser criado se ainda não existir.template-file-name
é o nome do ficheiro de modelo.myuser/myrepo
é o nome do repositório no qual os problemas vão ser criados.project-id
é o ID do seu Google Cloud projeto.secret-name
é o nome do seu segredo que contém o seu token do GitHub.
Para ver o exemplo, consulte o ficheiro de configuração do notificador para o notificador do Google Chat.
Para ver campos adicionais pelos quais pode filtrar, consulte o recurso Build. Para ver exemplos de filtragem adicionais, consulte o artigo Usar o IEC para filtrar eventos de compilação.
Executar o script de automatização
Para automatizar a configuração de notificações para o seu notificador:
Clone o repositório cloud-build-notifiers.
Configure a CLI do Google Cloud com o ID do projeto e a região:
gcloud config set project project-id gcloud config set run/region region
Onde:
project-id
é o ID do seu Google Cloud projeto.region
é a região para implementar o notificador.
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 ficheiro de configuração dos notificadores.template-path
é o caminho para o ficheiro de modelo dos seus notificadores. O ficheiro de modelo de notificadores contém o modelo JSON alojado no armazenamento na nuvem e representa a sua mensagem de notificação. Pode incluir o ficheiro de modelo dos notificadores como um caminho através desta variável ou no campouri
do ficheiro de configuração dos notificadores.secret-name
é o nome do seu segredo armazenado no Secret Manager.
Depois de executar o script, é apresentada a seguinte mensagem:
** NOTIFIER SETUP COMPLETE **
O seu notificador já está configurado. Pode ver o script completo no repositório cloud-build-notifiers ou executar ./setup.sh --help
para ver instruções de utilização associadas ao script.
O que se segue?
- Saiba mais sobre os notificadores do Cloud Build.
- Saiba como subscrever notificações de compilação.
- Saiba como escrever um ficheiro de configuração de compilação do Cloud Build.