Puoi configurare Cloud Build in modo che ti invii notifiche di compilazione a Slack, Google Chat, un server SMTP, un endpoint HTTP o un'istanza BigQuery utilizzando i notificatori Cloud Build. Questa pagina spiega come automatizzare la procedura di configurazione per il sistema di notifica che preferisci.
Automatizzare la 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
Le sezioni seguenti descrivono i passaggi da completare prima di eseguire l'automazione della configurazione delle notifiche per il tuo notifier.
Abilitazione delle API in corso…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Ottenere e memorizzare le credenziali
Crea un'app di Slack per lo workspace di Slack a cui vuoi inviare notifiche.
Attiva i webhook in arrivo per pubblicare messaggi da Cloud Build su Slack.
Vai all'app Slack per individuare l'URL del webhook in arrivo. L'URL sarà simile al seguente:
http://hooks.slack.com/services/...
Memorizza l'URL webhook in entrata in Secret Manager:
Apri la pagina Secret Manager nella console Google Cloud :
Fai clic su Crea secret.
Inserisci un nome per il secret.
In Valore segreto, aggiungi l'URL del webhook in entrata per la tua app Slack.
Per salvare il secret, fai clic su Crea secret.
Scrittura di un file di configurazione del notifier
Scrivi un file di configurazione del notificatore per configurare il notificatore di Slack e filtrare in base agli eventi di compilazione:
Nel seguente esempio di file di configurazione del notifier, il campo filter
utilizza il Common Expression Language con la variabile disponibile build
per filtrare gli eventi di compilazione con uno 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 dell'webhook di 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 segreto che contiene l'URL del webhook di 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 per lo spazio Slack.
Per visualizzare l'esempio, consulta il file di configurazione del notificatore per il notificatore Slack.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per il tuo notifier:
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 progetto Google Cloud .region
è la regione in cui eseguire il deployment del notificatore.
Esegui il seguente comando nella directory principale del repository:
./setup.sh slack config-path -t template-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione degli avvisatori.template-path
è il percorso del file del modello di notifiche. Il file del modello di notifiche contiene il modello JSON ospitato su Cloud Storage e rappresenta il messaggio di notifica. Puoi includere il file del modello di notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione dei notifiche.secret-name
è il nome del secret archiviato in Secret Manager.
Dopo aver eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
Il tuo notifier è ora 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
Le sezioni seguenti descrivono i passaggi da completare prima di eseguire l'automazione della configurazione delle notifiche per il tuo notifier.
Abilitazione delle API in corso…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Memorizzazione delle credenziali
Memorizza la password dell'account email del mittente in Secret Manager:
Apri la pagina Secret Manager nella console Google Cloud :
Fai clic su Crea secret.
Inserisci un nome per il secret.
In Valore segreto, aggiungi la password dell'account email del mittente.
Per salvare il secret, fai clic su Crea secret.
Scrittura di un file di configurazione del notifier
Scrivi un file di configurazione del notificatore per configurare il notificatore SMTP e filtrare in base agli eventi di compilazione:
Nel seguente esempio di file di configurazione del notifier, il campo filter
utilizza il Common Expression Language con la variabile disponibile build
per filtrare gli eventi di compilazione con uno 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 tuo server SMTP.port
è la porta che gestirà le richieste SMTP. Questo valore deve essere specificato come stringa.sender-email
è l'indirizzo email dell'account mittente visualizzato da server-host-name specificato.from-email
è l'indirizzo email visualizzato dai destinatari.recipient-email
è un elenco di uno o più indirizzi email che riceveranno i messaggi dal mittente.smtp-password
è la variabile di configurazione utilizzata in questo esempio per fare riferimento alla password dell'account email del mittente memorizzata 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 segreto che contiene la password dell'account email del mittente.- Il campo
uri
fa riferimento al filesmtp.html
. Questi file fanno riferimento a un modello HTML ospitato su Cloud Storage e rappresentano l'email di notifica.
Per visualizzare l'esempio, consulta il file di configurazione del notificatore per il notificatore SMTP.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per il tuo notifier:
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 progetto Google Cloud .region
è la regione in cui eseguire il deployment del notificatore.
Esegui il seguente comando nella directory principale del repository:
./setup.sh smtp config-path -t template-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione degli avvisatori.template-path
è il percorso del file del modello di notifiche. Il file del modello di notifiche contiene il modello JSON ospitato su Cloud Storage e rappresenta il messaggio di notifica. Puoi includere il file del modello di notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione dei notifiche.secret-name
è il nome del secret archiviato in Secret Manager.
Dopo aver eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
Il tuo notifier è ora 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
Le sezioni seguenti descrivono i passaggi da completare prima di eseguire l'automazione della configurazione delle notifiche per il tuo notifier.
Abilitazione delle API in corso…
Enable the Cloud Build, Cloud Run, Pub/Sub, and BigQuery APIs.
Concessione di autorizzazioni
Concedi all'account di servizio Cloud Run l'autorizzazione per creare e scrivere tabelle BigQuery e l'autorizzazione per recuperare i dati di Artifact Registry correlati alla tua build:
Vai alla pagina IAM nella console Google Cloud :
Individua l'account di servizio predefinito di Compute Engine associato al tuo progetto:
Il tuo account di servizio Compute Engine predefinito avrà un aspetto simile al seguente, dove project-number è il numero del progetto:
project-number-compute@developer.gserviceaccount.com
Fai clic sull'icona a forma di matita nella riga contenente il service account predefinito di Compute Engine.
Viene visualizzata la scheda Accesso in modifica.
Fai clic su Aggiungi un altro ruolo.
Aggiungi i seguenti ruoli:
- Artifact Registry Reader
BigQuery Data Editor
Il ruolo Lettore di Artifact Registry ti consente di recuperare i dati per le tue immagini. BigQuery Data Editor ti consente di accedere in lettura e scrittura ai tuoi dati.
Fai clic su Salva.
Scrittura di un file di configurazione del notifier
Scrivi un file di configurazione del notifier per configurare il notifier BigQuery e filtrare in base agli eventi di compilazione:
Nel seguente esempio di file di configurazione del notifier, il campo filter
utilizza il Common Expression Language con la variabile build
per filtrare gli eventi di compilazione con un ID attivatore 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 set di dati.table-name
è il nome che vuoi assegnare alla tabella.
Il parametro table-name nel file di configurazione del notifier può fare riferimento a:
- una tabella inesistente
- una tabella vuota senza uno schema
una tabella esistente con uno schema che corrisponde alle specifiche dello schema nel notifier BigQuery
Il campo
uri
fa riferimento al filebq.json
. Questo file fa riferimento a un modello JSON ospitato su Cloud Storage e rappresenta le informazioni da inserire nella tabella BigQuery.
Per visualizzare l'esempio, consulta il file di configurazione del notifier per il notifier BigQuery.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per il tuo notifier:
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 progetto Google Cloud .region
è la regione in cui eseguire il deployment del notificatore.
Esegui il seguente comando nella directory principale del repository:
./setup.sh bigquery -t config-path -t template-path
Dove:
config-path
è il percorso del file di configurazione degli avvisatori.template-path
è il percorso del file del modello di notifiche. Il file del modello di notifiche contiene il modello JSON ospitato su Cloud Storage e rappresenta il messaggio di notifica. Puoi includere il file del modello di notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione dei notifiche.
Dopo aver eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
Il tuo notifier è ora 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
Le sezioni seguenti descrivono i passaggi da completare prima di eseguire l'automazione della configurazione delle notifiche per il tuo notifier.
Abilitazione delle API in corso…
Enable the Cloud Build, Cloud Run, and Pub/Sub APIs.
Scrittura di un file di configurazione del notifier
Scrivi un file di configurazione del notificatore per configurare il notificatore HTTP e filtrare in base agli eventi di compilazione:
Nel seguente esempio di file di configurazione del notifier, il campo filter
utilizza il Common Expression Language con la variabile disponibile build
per filtrare gli eventi di compilazione con uno 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, consulta il file di configurazione del notificatore per il notificatore HTTP.
Esecuzione dello script di automazione
Per automatizzare la configurazione delle notifiche per il tuo notifier:
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 progetto Google Cloud .region
è la regione in cui eseguire il deployment del notificatore.
Esegui il seguente comando nella directory principale del repository:
./setup.sh http -t config-path
Dove:
config-path
è il percorso del file di configurazione degli avvisatori.
Dopo aver eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
Il tuo notifier è ora 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
Le sezioni seguenti descrivono i passaggi da completare prima di eseguire l'automazione della configurazione delle notifiche per il tuo notifier.
Abilitazione delle API in corso…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Ottenere e memorizzare le credenziali
Crea uno spazio in Google Chat.
Nello spazio creato, crea un webhook in arrivo per pubblicare messaggi da Cloud Build in Google Chat. L'URL sarà simile al seguente:
https://chat.googleapis.com/v1/spaces/...
Memorizza l'URL webhook in entrata in Secret Manager:
Apri la pagina Secret Manager nella console Google Cloud :
Fai clic su Crea secret.
Inserisci un nome per il secret.
In Valore segreto, aggiungi l'URL webhook in entrata per il tuo spazio di Google Chat.
Per salvare il secret, fai clic su Crea secret.
Scrittura di un file di configurazione del notifier
Scrivi un file di configurazione del notificatore per configurare il notificatore di Google Chat e filtrare in base agli eventi di compilazione:
Nel seguente esempio di file di configurazione del notifier, il campo filter
utilizza il Common Expression Language con la variabile disponibile build
per filtrare gli eventi di compilazione con uno 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 dell'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 del webhook di Google Chat.
Per visualizzare l'esempio, consulta il file di configurazione del notifier per il notifier di Google Chat.
Eseguire lo script di automazione
Per automatizzare la configurazione delle notifiche per il tuo notifier:
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 progetto Google Cloud .region
è la regione in cui eseguire il deployment del notificatore.
Esegui il seguente comando nella directory principale del repository:
./setup.sh googlechat config-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione degli avvisatori.secret-name
è il nome del secret archiviato in Secret Manager.
Dopo aver eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
Il tuo notifier è ora 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 GitHub
Configurazione
Le sezioni seguenti descrivono i passaggi da completare prima di eseguire l'automazione della configurazione delle notifiche per il tuo notifier.
Abilitazione delle API in corso…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Ottenere e memorizzare le 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.
Memorizza il token in Secret Manager:
Apri la pagina 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 del modello
Scrivi un file di configurazione del modello per descrivere il formato che devono avere i problemi GitHub creati:
Nel seguente esempio di file di configurazione del modello, i campi title
e body
utilizzano le variabili di sostituzione della compilazione:
{
"title": "Build {{.Build.BuildTriggerId}}: {{.Build.Status}}",
"body": "[{{.Build.ProjectId}}] {{.Build.BuildTriggerId}} status: **{{.Build.Status}}**\n\n[View Logs]({{.Build.LogUrl}})"
}
Per visualizzare l'esempio, consulta il file di configurazione del modello per il notifier dei problemi di GitHub.
È possibile impostare campi aggiuntivi dai parametri del corpo disponibili nell'endpoint dellendpoint API per la creazione di un problema.
Scrittura di un file di configurazione del notifier
Scrivi un file di configurazione del notificatore per configurare il notificatore di Google Chat e filtrare in base agli eventi di compilazione:
Nel seguente esempio di file di configurazione del notifier, il campo filter
utilizza il Common Expression Language con la variabile disponibile build
per filtrare gli eventi di compilazione con uno 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 posizione in cui verrà caricato il modello e il bucket verrà creato se non esiste già.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 dello secret che contiene il token GitHub.
Per visualizzare l'esempio, consulta il file di configurazione del notifier per il notifier di Google Chat.
Per altri campi in base ai quali puoi filtrare, consulta la risorsa Build. Per altri esempi di filtri, consulta Utilizzo di CEL per filtrare gli eventi di build.
Eseguire lo script di automazione
Per automatizzare la configurazione delle notifiche per il tuo notifier:
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 progetto Google Cloud .region
è la regione in cui eseguire il deployment del notificatore.
Esegui il seguente comando nella directory principale del repository:
./setup.sh githubissues config-path -t template-path -s secret-name
Dove:
config-path
è il percorso del file di configurazione degli avvisatori.template-path
è il percorso del file del modello di notifiche. Il file del modello di notifiche contiene il modello JSON ospitato su Cloud Storage e rappresenta il messaggio di notifica. Puoi includere il file del modello di notifiche come percorso utilizzando questa variabile o all'interno del campouri
del file di configurazione dei notifiche.secret-name
è il nome del secret archiviato in Secret Manager.
Dopo aver eseguito lo script, viene visualizzato il seguente messaggio:
** NOTIFIER SETUP COMPLETE **
Il tuo notifier è ora 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 notificatori di Cloud Build.
- Scopri come abbonarti alle notifiche di compilazione.
- Scopri come scrivere un file di configurazione della build di Cloud Build.