Puoi configurare Cloud Build in modo che invii notifiche di build a Slack, Google Chat, un server SMTP, un endpoint HTTP o un'istanza BigQuery utilizzando i notifiche di Cloud Build. Questa pagina spiega come automatizzare il processo di configurazione del dispositivo di notifica desiderato.
Automatizzazione della configurazione delle notifiche
Cloud Build fornisce uno script di configurazione che puoi utilizzare per automatizzare la configurazione delle notifiche. Per configurare le notifiche utilizzando lo script di configurazione:
Slack
Configurazione in corso…
Le seguenti sezioni descrivono i passaggi da completare prima di automatizzare la configurazione delle notifiche per il notificante.
Abilitazione delle API in corso…
Abilita le API Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
Recupero e archiviazione delle credenziali
Crea un'app Slack per l'area di lavoro Slack a cui vuoi inviare le notifiche.
Attiva i hooking in arrivo per pubblicare messaggi da Cloud Build a Slack.
Vai all'app Slack per individuare l'URL del webhook in arrivo. Il tuo URL sarà simile al seguente:
http://hooks.slack.com/services/...
Archivia l'URL del webhook in arrivo in Secret Manager:
Apri la pagina di Secret Manager nella console Google Cloud:
Fai clic su Crea secret.
Inserisci un nome per il secret.
In Valore secret, aggiungi l'URL webhook in arrivo per l'app Slack.
Per salvare il secret, fai clic su Crea secret.
Scrittura di un file di configurazione per le notifiche
Scrivi un file di configurazione del notificante per configurare il notificatore Slack e filtrare gli eventi di build:
Nel file di configurazione del notificatore di esempio riportato di seguito, il campo filter
utilizza il Common Expression Language con la variabile disponibile, build
, per filtrare gli eventi di build con stato 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
Dove:
webhook-url
è la variabile di configurazione utilizzata in questo esempio per fare riferimento al percorso dell'URL del webhook Slack archiviato in Secret Manager. Il nome della variabile specificato qui deve corrispondere al camponame
insecrets
.project-id
è l'ID del tuo progetto Google Cloud.secret-name
è il nome del secret che contiene l'URL webhook Slack.- Il campo
uri
fa riferimento al fileslack.json
. Questo file contiene un modello JSON ospitato su Cloud Storage e rappresenta il messaggio di notifica nel tuo spazio Slack.
Per visualizzare l'esempio, vedi il file di configurazione del notifier per lo strumento di notifica Slack.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per l'autore della notifica:
Clona il repository cloud-build-notifiers.
Configura Google Cloud CLI con l'ID progetto e la regione:
gcloud config set project project-id gcloud config set run/region region
Dove:
project-id
è l'ID del tuo progetto Google Cloud.region
è la regione in cui eseguire il deployment del notificante.
Esegui questo comando nella directory radice del repository:
./setup.sh slack config-path -t template-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione delle notifiche.template-path
è il percorso del file del modello di notifica. Il file del modello di notificanti contiene il modello JSON attivato su Cloud Storage e rappresenta il tuo messaggio di notifica. Puoi includere il file del modello per le notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione delle notifiche.secret-name
è il nome del tuo secret archiviato in Secret Manager.
Una volta eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
L'avviso è stato configurato. Puoi visualizzare lo script completo nel
repository cloud-build-notifiers o eseguire ./setup.sh --help
per le istruzioni di utilizzo associate allo script.
SMTP
Configurazione in corso…
Le seguenti sezioni descrivono i passaggi da completare prima di automatizzare la configurazione delle notifiche per il notificante.
Abilitazione delle API in corso…
Abilita le API Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
Archiviazione delle credenziali
Archivia la password dell'account email del mittente in Secret Manager:
Apri la pagina di Secret Manager nella console Google Cloud:
Fai clic su Crea secret.
Inserisci un nome per il secret.
In Valore secret, aggiungi la password dell'account email del mittente.
Per salvare il secret, fai clic su Crea secret.
Scrittura di un file di configurazione per le notifiche
Scrivi un file di configurazione del notificante per configurare il notificatore SMTP e filtrare gli eventi di build:
Nel file di configurazione del notificatore di esempio riportato di seguito, il campo filter
utilizza il Common Expression Language con la variabile disponibile, build
, per filtrare gli eventi di build con stato 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
Dove:
server-host-name
è l'indirizzo del server SMTP.port
è la porta che gestirà le richieste SMTP. Questo valore deve essere specificato come stringa.sender-email
è l'indirizzo email dell'account del mittente visualizzato dal server-host-name specificato.from-email
è l'indirizzo email visualizzato dai destinatari.recipient-email
è un elenco di uno o più indirizzi email a cui ricevere i messaggi del mittente.smtp-password
è la variabile di configurazione utilizzata in questo esempio per fare riferimento alla password dell'account email del mittente archiviata in Secret Manager. Il nome della variabile specificato qui deve corrispondere al camponame
insecrets
.project-id
è l'ID del tuo progetto Google Cloud.secret-name
è il nome del secret che contiene la password dell'account email del mittente.- Il campo
uri
fa riferimento al filesmtp.html
. Questo file fa riferimento a un modello HTML ospitato su Cloud Storage e rappresenta la tua email di notifica.
Per visualizzare l'esempio, vedi il file di configurazione del notificante per il notificatore SMTP.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per l'autore della notifica:
Clona il repository cloud-build-notifiers.
Configura Google Cloud CLI con l'ID progetto e la regione:
gcloud config set project project-id gcloud config set run/region region
Dove:
project-id
è l'ID del tuo progetto Google Cloud.region
è la regione in cui eseguire il deployment del notificante.
Esegui questo comando nella directory radice del repository:
./setup.sh smtp config-path -t template-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione delle notifiche.template-path
è il percorso del file del modello di notifica. Il file del modello di notificanti contiene il modello JSON attivato su Cloud Storage e rappresenta il tuo messaggio di notifica. Puoi includere il file del modello per le notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione delle notifiche.secret-name
è il nome del tuo secret archiviato in Secret Manager.
Una volta eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
L'avviso è stato configurato. Puoi visualizzare lo script completo nel
repository cloud-build-notifiers o eseguire ./setup.sh --help
per le istruzioni di utilizzo associate allo script.
BigQuery
Configurazione in corso…
Le seguenti sezioni descrivono i passaggi da completare prima di automatizzare la configurazione delle notifiche per il notificante.
Abilitazione delle API in corso…
Abilita le API Cloud Build, Cloud Run, Pub/Sub, and BigQuery.
Concessione di autorizzazioni
Concedi al tuo account di servizio Cloud Run l'autorizzazione per creare e scrivere tabelle BigQuery e per recuperare i dati di Artifact Registry relativi alla tua build:
Vai alla pagina IAM nella console Google Cloud:
Individua l'account di servizio predefinito di Compute Engine associato al progetto:
Il tuo account di servizio predefinito di Compute Engine sarà simile al seguente, dove project-number è il numero del tuo progetto:
project-number-compute@developer.gserviceaccount.com
Fai clic sull'icona a forma di matita nella riga contenente l'account di servizio predefinito di Compute Engine.
Visualizzerai la scheda Modifica accesso.
Fai clic su Aggiungi un altro ruolo.
Aggiungi i seguenti ruoli:
- Lettore Artifact Registry
Editor dati BigQuery
Il ruolo Lettore Artifact Registry consente di recuperare i dati per le immagini. L'editor dati di BigQuery consente l'accesso in lettura e scrittura ai dati.
Fai clic su Salva.
Scrittura di un file di configurazione per le notifiche
Scrivi un file di configurazione del notificante per configurare il notificatore BigQuery e filtrare gli eventi di build:
Nel seguente esempio di file di configurazione dell'avviso, il campo filter
utilizza il Common Expression Language con la variabile build
per filtrare gli eventi di build con un ID trigger specificato:
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
Dove:
project-id
è l'ID del tuo progetto Google Cloud.dataset-name
è il nome che vuoi assegnare al tuo set di dati.table-name
è il nome che vuoi assegnare alla tua tabella.
Il table-name nel file di configurazione delle notifiche può fare riferimento a:
- una tabella inesistente
- una tabella vuota senza uno schema
una tabella esistente con uno schema corrispondente alle specifiche dello schema nello strumento di notifica BigQuery
Il campo
uri
fa riferimento al filebq.json
. Questo file fa riferimento a un modello JSON ospitato in Cloud Storage e rappresenta le informazioni da inserire nella tabella BigQuery.
Per visualizzare l'esempio, vedi il file di configurazione del notificatore per il notificatore BigQuery.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per l'autore della notifica:
Clona il repository cloud-build-notifiers.
Configura Google Cloud CLI con l'ID progetto e la regione:
gcloud config set project project-id gcloud config set run/region region
Dove:
project-id
è l'ID del tuo progetto Google Cloud.region
è la regione in cui eseguire il deployment del notificante.
Esegui questo comando nella directory radice del repository:
./setup.sh bigquery -t config-path -t template-path
Dove:
config-path
è il percorso del file di configurazione delle notifiche.template-path
è il percorso del file del modello di notifica. Il file del modello di notificanti contiene il modello JSON attivato su Cloud Storage e rappresenta il tuo messaggio di notifica. Puoi includere il file del modello per le notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione delle notifiche.
Una volta eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
L'avviso è stato configurato. Puoi visualizzare lo script completo nel repository cloud-build-notifiers o eseguire
./setup.sh --help
per le istruzioni di utilizzo associate allo script.
HTTP
Configurazione in corso…
Le seguenti sezioni descrivono i passaggi da completare prima di automatizzare la configurazione delle notifiche per il notificante.
Abilitazione delle API in corso…
Abilita le API Cloud Build, Cloud Run, and Pub/Sub.
Scrittura di un file di configurazione per le notifiche
Scrivi un file di configurazione del notificatore per configurare il notificatore HTTP e filtrare gli eventi di build:
Nel file di configurazione del notificatore di esempio riportato di seguito, il campo filter
utilizza il Common Expression Language con la variabile disponibile, build
, per filtrare gli eventi di build con stato 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
Dove:
url
è la variabile di configurazione utilizzata in questo esempio per specificare l'URL per la richiesta.- url è l'URL che vuoi specificare come server destinatario.
- Il campo
uri
fa riferimento al filehttp.json
. Questo file fa riferimento a un modello JSON ospitato su Cloud Storage e rappresenta il payload json per l'endpoint webhook.
Per visualizzare l'esempio, vedi il file di configurazione del notificatore per lo strumento di notifica HTTP.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per l'autore della notifica:
Clona il repository cloud-build-notifiers.
Configura Google Cloud CLI con l'ID progetto e la regione:
gcloud config set project project-id gcloud config set run/region region
Dove:
project-id
è l'ID del tuo progetto Google Cloud.region
è la regione in cui eseguire il deployment del notificante.
Esegui questo comando nella directory radice del repository:
./setup.sh http -t config-path
Dove:
config-path
è il percorso del file di configurazione delle notifiche.
Una volta eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
L'avviso è stato configurato. Puoi visualizzare lo script completo nel
repository cloud-build-notifiers o eseguire ./setup.sh --help
per le istruzioni di utilizzo associate allo script.
Google Chat
Configurazione in corso…
Le seguenti sezioni descrivono i passaggi da completare prima di automatizzare la configurazione delle notifiche per il notificante.
Abilitazione delle API in corso…
Abilita le API Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
Recupero e archiviazione delle credenziali
Crea uno spazio in Google Chat.
Nello spazio creato, crea un webhook in arrivo per pubblicare messaggi da Cloud Build a Google Chat. Il tuo URL sarà simile al seguente:
https://chat.googleapis.com/v1/spaces/...
Archivia l'URL del webhook in arrivo in Secret Manager:
Apri la pagina di Secret Manager nella console Google Cloud:
Fai clic su Crea secret.
Inserisci un nome per il secret.
In Valore secret, aggiungi l'URL del webhook in arrivo per lo spazio di Google Chat.
Per salvare il secret, fai clic su Crea secret.
Scrittura di un file di configurazione per le notifiche
Scrivi un file di configurazione del generatore di notifiche per configurare il notificatore di Google Chat e filtrare in base agli eventi di build:
Nel file di configurazione del notificatore di esempio riportato di seguito, il campo filter
utilizza il Common Expression Language con la variabile disponibile, build
, per filtrare gli eventi di build con stato 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
Dove:
webhook-url
è la variabile di configurazione utilizzata in questo esempio per fare riferimento al percorso dell'URL webhook di Google Chat archiviato in Secret Manager. Il nome della variabile specificato qui deve corrispondere al camponame
insecrets
.project-id
è l'ID del tuo progetto Google Cloud.secret-name
è il nome del secret che contiene l'URL webhook di Google Chat.
Per visualizzare l'esempio, vedi il file di configurazione del generatore di notifiche per Google Chat Notifier.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per l'autore della notifica:
Clona il repository cloud-build-notifiers.
Configura Google Cloud CLI con l'ID progetto e la regione:
gcloud config set project project-id gcloud config set run/region region
Dove:
project-id
è l'ID del tuo progetto Google Cloud.region
è la regione in cui eseguire il deployment del notificante.
Esegui questo comando nella directory radice del repository:
./setup.sh googlechat config-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione delle notifiche.secret-name
è il nome del tuo secret archiviato in Secret Manager.
Una volta eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
L'avviso è stato configurato. Puoi visualizzare lo script completo nel
repository cloud-build-notifiers o eseguire ./setup.sh --help
per le istruzioni di utilizzo associate allo script.
Problemi relativi a GitHub
Configurazione in corso…
Le seguenti sezioni descrivono i passaggi da completare prima di automatizzare la configurazione delle notifiche per il notificante.
Abilitazione delle API in corso…
Abilita le API Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.
Recupero e archiviazione delle credenziali
Crea un token di accesso personale GitHub:
- Vai alle impostazioni di GitHub per creare un nuovo token.
Seleziona l'ambito
repo
.Fai clic su Genera token.
Archivia il token in Secret Manager:
Apri la pagina di Secret Manager nella console Google Cloud:
Fai clic su Crea secret.
Inserisci un nome per il secret.
In Valore secret, aggiungi il token GitHub.
Per salvare il secret, fai clic su Crea secret.
Scrittura di un file di configurazione di modello
Scrivi un file di configurazione del modello per descrivere il formato di creazione di GitHub che dovrebbe prendere in considerazione:
Nel seguente file di configurazione del modello di esempio, i campi title
e body
utilizzano le variabili di sostituzione della build:
{
"title": "Build {{.Build.BuildTriggerId}}: {{.Build.Status}}",
"body": "[{{.Build.ProjectId}}] {{.Build.BuildTriggerId}} status: **{{.Build.Status}}**\n\n[View Logs]({{.Build.LogUrl}})"
}
Per visualizzare l'esempio, vedi il file di configurazione del modello per il notificatore problemi GitHub.
È possibile impostare campi aggiuntivi dai parametri del corpo disponibili dall'endpoint API di GitHub per creare un problema.
Scrittura di un file di configurazione per le notifiche
Scrivi un file di configurazione del generatore di notifiche per configurare il notificatore di Google Chat e filtrare in base agli eventi di build:
Nel file di configurazione del notificatore di esempio riportato di seguito, il campo filter
utilizza il Common Expression Language con la variabile disponibile, build
, per filtrare gli eventi di build con stato 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
Dove:
githubToken
è la variabile di configurazione utilizzata in questo esempio per fare riferimento al token GitHub archiviato in Secret Manager. Il nome della variabile specificato qui deve corrispondere al camponame
insecrets
.project-id-notifiers-config
è la località in cui verrà caricato il modello e, se non esiste già, il bucket verrà creato.template-file-name
è il nome del file del modello.myuser/myrepo
è il nome del repository in base al quale verranno creati i problemi.project-id
è l'ID del tuo progetto Google Cloud.secret-name
è il nome del secret che contiene il token GitHub.
Per visualizzare l'esempio, vedi il file di configurazione del generatore di notifiche per Google Chat Notifier.
Per i campi aggiuntivi in base ai quali puoi filtrare, consulta la risorsa Crea. Per ulteriori esempi di filtro, consulta la sezione Utilizzare CEL per filtrare gli eventi di build.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per l'autore della notifica:
Clona il repository cloud-build-notifiers.
Configura Google Cloud CLI con l'ID progetto e la regione:
gcloud config set project project-id gcloud config set run/region region
Dove:
project-id
è l'ID del tuo progetto Google Cloud.region
è la regione in cui eseguire il deployment del notificante.
Esegui questo comando nella directory radice del repository:
./setup.sh githubissues config-path -t template-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione delle notifiche.template-path
è il percorso del file del modello di notifica. Il file del modello di notificanti contiene il modello JSON attivato su Cloud Storage e rappresenta il tuo messaggio di notifica. Puoi includere il file del modello per le notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione delle notifiche.secret-name
è il nome del tuo secret archiviato in Secret Manager.
Una volta eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
L'avviso è stato configurato. Puoi visualizzare lo script completo nel
repository cloud-build-notifiers o eseguire ./setup.sh --help
per le istruzioni di utilizzo associate allo script.
Passaggi successivi
- Scopri di più sui notifiche di Cloud Build.
- Scopri come iscriverti per ricevere notifiche sulle build.
- Scopri come scrivere un file di configurazione di compilazione di Cloud Build.