Vous pouvez configurer Cloud Build pour vous envoyer des notifications de compilation à Slack, à Google Chat, à un serveur SMTP, à un point de terminaison HTTP ou à une instance BigQuery à l'aide des systèmes d'alerte Cloud Build. Cette page explique comment automatiser le processus de configuration pour le système d'alerte souhaité.
Automatiser la configuration des notifications
Cloud Build fournit un script de configuration que vous pouvez utiliser pour automatiser la configuration des notifications. Pour configurer les notifications à l'aide du script de configuration, procédez comme suit :
Slack
Configurer
Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.
Activation des API…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Obtenir et stocker des identifiants
Créez une application Slack pour l'espace de travail Slack auquel vous souhaitez envoyer des notifications.
Activez les webhooks entrants pour publier des messages depuis Cloud Build vers Slack.
Accédez à votre application Slack pour localiser l'URL du webhook entrant. Votre URL ressemblera à ce qui suit :
http://hooks.slack.com/services/...
Stockez l'URL du webhook entrant dans Secret Manager :
Ouvrez la page Secret Manager dans la console Google Cloud:
Cliquez sur Créer un secret.
Attribuez un nom à votre secret.
Sous Valeur du secret, ajoutez l'URL du webhook entrant pour votre application Slack.
Pour enregistrer votre secret, cliquez sur Créer un secret.
Écrire un fichier de configuration du système d'alerte
Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte Slack et filtrer les événements de compilation :
Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter
utilise Common Expression Language avec la variable disponible, build
, pour filtrer les événements de compilation à l'état 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
Où :
webhook-url
est la variable de configuration utilisée dans cet exemple pour référencer le chemin d'URL du webhook Slack stocké dans Secret Manager. Le nom de la variable que vous spécifiez ici doit correspondre au champname
soussecrets
.project-id
est l'ID du projet Google Cloud.secret-name
est le nom de votre secret contenant l'URL de votre webhook Slack.- Le champ
uri
fait référence au fichierslack.json
. Ce fichier contient un modèle JSON hébergé sur Cloud Storage et représente votre message de notification dans votre espace Slack.
Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte Slack.
Exécuter le script d'automatisation
Pour automatiser la configuration des notifications pour votre système d'alerte :
Clonez le dépôt cloud-build-notifier.
Configurez la Google Cloud CLI avec votre ID de projet et votre région:
gcloud config set project project-id gcloud config set run/region region
Où :
project-id
correspond à votre ID de projet Google Cloud.region
est la région dans laquelle déployer le système d'alerte.
Exécutez la commande suivante à la racine du dépôt :
./setup.sh slack config-path -t template-path -s secret-name
Où :
config-path
est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.template-path
est le chemin d'accès au fichier de modèle de vos systèmes d'alerte. Votre fichier de modèle de notification contient le modèle JSON hébergé sur Cloud Storage et représente votre message de notification. Vous pouvez inclure votre fichier de modèle de système d'alerte en tant que chemin d'accès à l'aide de cette variable ou dans le champuri
de votre fichier de configuration de système d'alerte.secret-name
est le nom du secret stocké dans Secret Manager.
Une fois le script exécuté, le message suivant s'affiche :
** NOTIFIER SETUP COMPLETE **
Votre système d'alerte est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifier ou exécuter ./setup.sh --help
pour obtenir les instructions d'utilisation associées au script.
SMTP
Configurer
Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.
Activation des API…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Stockage des identifiants
Stockez le mot de passe du compte de messagerie de l'expéditeur dans Secret Manager :
Ouvrez la page Secret Manager dans la console Google Cloud :
Cliquez sur Créer un secret.
Attribuez un nom à votre secret.
Sous Valeur du secret, ajoutez le mot de passe du compte de messagerie de l'expéditeur.
Pour enregistrer votre secret, cliquez sur Créer un secret.
Écrire un fichier de configuration du système d'alerte
Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte SMTP et filtrer les événements de compilation :
Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter
utilise Common Expression Language avec la variable disponible, build
, pour filtrer les événements de compilation à l'état 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
Où :
server-host-name
est l'adresse de votre serveur SMTP.port
est le port qui gère les requêtes SMTP. Cette valeur doit être spécifiée sous forme de chaîne.sender-email
est l'adresse e-mail du compte de l'expéditeur, visible par le paramètre server-host-name spécifié.from-email
est l'adresse e-mail visible par les destinataires.recipient-email
est une liste d'une ou de plusieurs adresses e-mail destinées à recevoir les messages de l'expéditeur.smtp-password
est la variable de configuration utilisée dans cet exemple pour faire référence au mot de passe du compte de messagerie de l'expéditeur stocké dans Secret Manager. Le nom de la variable que vous spécifiez ici doit correspondre au champname
soussecrets
.project-id
est l'ID du projet Google Cloud.secret-name
est le nom de votre secret contenant le mot de passe du compte de messagerie de l'expéditeur.- Le champ
uri
fait référence au fichiersmtp.html
. Ce fichier fait référence à un modèle HTML hébergé sur Cloud Storage et représente votre e-mail de notification.
Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte SMTP.
Exécuter le script d'automatisation
Pour automatiser la configuration des notifications pour votre système d'alerte, procédez comme suit:
Clonez le dépôt cloud-build-notifier.
Configurez la Google Cloud CLI avec l'ID et la région de votre projet :
gcloud config set project project-id gcloud config set run/region region
Où :
project-id
correspond à votre ID de projet Google Cloud.region
est la région dans laquelle déployer le système d'alerte.
Exécutez la commande suivante à la racine du dépôt :
./setup.sh smtp config-path -t template-path -s secret-name
Où :
config-path
est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.template-path
est le chemin d'accès au fichier de modèle de vos systèmes d'alerte. Votre fichier de modèle de notification contient le modèle JSON hébergé sur Cloud Storage et représente votre message de notification. Vous pouvez inclure votre fichier de modèle de système d'alerte en tant que chemin d'accès à l'aide de cette variable ou dans le champuri
de votre fichier de configuration de système d'alerte.secret-name
est le nom du secret stocké dans Secret Manager.
Une fois le script exécuté, le message suivant s'affiche :
** NOTIFIER SETUP COMPLETE **
Votre système d'alerte est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifier ou exécuter ./setup.sh --help
pour obtenir les instructions d'utilisation associées au script.
BigQuery
Configurer
Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.
Activation des API…
Enable the Cloud Build, Cloud Run, Pub/Sub, and BigQuery APIs.
Accorder des autorisations
Autorisez votre compte de service Cloud Run à créer et à écrire des tables BigQuery, ainsi qu'à récupérer des données Artifact Registry associées à votre compilation :
Accédez à la page "IAM" de la console Google Cloud :
Recherchez le compte de service Compute Engine par défaut associé à votre projet :
Votre compte de service Compute Engine par défaut ressemblera à ce qui suit, où project-number est le numéro de votre projet :
project-number-compute@developer.gserviceaccount.com
Cliquez sur l'icône en forme de crayon sur la ligne contenant votre compte de service Compute Engine par défaut.
L'onglet Modifier l'accès s'affiche.
Cliquez sur Ajouter un autre rôle.
Ajoutez les rôles suivants :
- Lecteur Artifact Registry
Éditeur de données BigQuery
Le rôle Lecteur Artifact Registry vous permet d'extraire des données pour vos images. L'éditeur de données BigQuery vous offre un accès en lecture et en écriture à vos données.
Cliquez sur Enregistrer.
Écrire un fichier de configuration du système d'alerte
Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte BigQuery et filtrer les événements de compilation :
Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter
utilise Common Expression Language avec la variable build
pour filtrer les événements de compilation avec un ID de déclencheur spécifié :
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
Où :
project-id
est l'ID du projet Google Cloud.dataset-name
est le nom que vous souhaitez donner à l'ensemble de données.table-name
est le nom que vous souhaitez donner à la table.
Le table-name du fichier de configuration de votre système d'alerte peut se référer à :
- une table inexistante ;
- une table vide sans schéma ;
une table existante avec un schéma qui correspond aux spécifications de schéma du système d'alerte BigQuery.
Le champ
uri
fait référence au fichierbq.json
. Ce fichier fait référence à un modèle JSON hébergé sur Cloud Storage et représente les informations à insérer dans votre table BigQuery.
Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte BigQuery.
Exécuter le script d'automatisation
Pour automatiser la configuration des notifications pour votre système d'alerte :
Clonez le dépôt cloud-build-notifier.
Configurez la Google Cloud CLI avec l'ID et la région de votre projet :
gcloud config set project project-id gcloud config set run/region region
Où :
project-id
correspond à votre ID de projet Google Cloud.region
est la région dans laquelle déployer le système d'alerte.
Exécutez la commande suivante à la racine du dépôt :
./setup.sh bigquery -t config-path -t template-path
Où :
config-path
est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.template-path
est le chemin d'accès au fichier de modèle de vos systèmes d'alerte. Votre fichier de modèle de notification contient le modèle JSON hébergé sur Cloud Storage et représente votre message de notification. Vous pouvez inclure votre fichier de modèle de système d'alerte en tant que chemin d'accès à l'aide de cette variable ou dans le champuri
de votre fichier de configuration de système d'alerte.
Une fois le script exécuté, le message suivant s'affiche :
** NOTIFIER SETUP COMPLETE **
Votre système d'alerte est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifier ou exécuter
./setup.sh --help
pour obtenir les instructions d'utilisation associées au script.
HTTP
Configurer
Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.
Activation des API…
Enable the Cloud Build, Cloud Run, and Pub/Sub APIs.
Écrire un fichier de configuration du système d'alerte
Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte HTTP et filtrer les événements de compilation :
Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter
utilise Common Expression Language avec la variable disponible, build
, pour filtrer les événements de compilation à l'état 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
Où :
url
est la variable de configuration utilisée dans cet exemple pour spécifier l'URL de votre requête.- url est l'URL que vous souhaitez spécifier en tant que serveur destinataire.
- Le champ
uri
fait référence au fichierhttp.json
. Ce fichier fait référence à un modèle JSON hébergé sur Cloud Storage et représente la charge utile JSON au point de terminaison du webhook.
Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte HTTP.
Exécuter le script d'automatisation
Pour automatiser la configuration des notifications pour votre système d'alerte :
Clonez le dépôt cloud-build-notifier.
Configurez la Google Cloud CLI avec votre ID de projet et votre région:
gcloud config set project project-id gcloud config set run/region region
Où :
project-id
correspond à votre ID de projet Google Cloud.region
est la région dans laquelle déployer le système d'alerte.
Exécutez la commande suivante à la racine du dépôt :
./setup.sh http -t config-path
Où :
config-path
est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.
Une fois le script exécuté, le message suivant s'affiche :
** NOTIFIER SETUP COMPLETE **
Votre système d'alerte est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifier ou exécuter ./setup.sh --help
pour obtenir les instructions d'utilisation associées au script.
Google Chat
Configurer
Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.
Activation des API…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Obtenir et stocker des identifiants
Créer un espace dans Google Chat.
Dans l'espace créé, créez un webhook entrant pour publier des messages depuis Cloud Build vers Google Chat. Votre URL doit ressembler à ceci:
https://chat.googleapis.com/v1/spaces/...
Stockez l'URL du webhook entrant dans Secret Manager :
Ouvrez la page Secret Manager dans la console Google Cloud:
Cliquez sur Créer un secret.
Attribuez un nom à votre secret.
Sous Valeur du secret, ajoutez l'URL du webhook entrant pour votre espace Google Chat.
Pour enregistrer votre secret, cliquez sur Créer un secret.
Écrire un fichier de configuration du système d'alerte
Rédigez un fichier de configuration du système d'alerte pour configurer votre système d'alerte Google Chat et filtrer les événements de compilation :
Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter
utilise Common Expression Language avec la variable disponible, build
, pour filtrer les événements de compilation à l'état 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
Où :
webhook-url
est la variable de configuration utilisée dans cet exemple pour faire référence au chemin d'URL du webhook Google Chat stocké dans Secret Manager. Le nom de la variable que vous spécifiez ici doit correspondre au champname
soussecrets
.project-id
est l'ID du projet Google Cloud.secret-name
est le nom de votre secret contenant l'URL de votre webhook Google Chat.
Pour afficher cet exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte Google Chat.
Exécuter le script d'automatisation
Pour automatiser la configuration des notifications pour votre système d'alerte, procédez comme suit:
Clonez le dépôt cloud-build-notifier.
Configurez la Google Cloud CLI avec votre ID de projet et votre région:
gcloud config set project project-id gcloud config set run/region region
Où :
project-id
correspond à votre ID de projet Google Cloud.region
est la région dans laquelle déployer le système d'alerte.
Exécutez la commande suivante à la racine du dépôt :
./setup.sh googlechat config-path -s secret-name
Où :
config-path
est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.secret-name
est le nom du secret stocké dans Secret Manager.
Une fois le script exécuté, le message suivant s'affiche :
** NOTIFIER SETUP COMPLETE **
Votre système d'alerte est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifier ou exécuter ./setup.sh --help
pour obtenir les instructions d'utilisation associées au script.
Problèmes GitHub
Configurer
Les sections suivantes décrivent les étapes à suivre avant d'automatiser la configuration des notifications pour votre système d'alerte.
Activation des API…
Enable the Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager APIs.
Obtenir et stocker des identifiants
Créez un jeton d'accès personnel GitHub:
- Accédez aux paramètres GitHub pour créer un jeton.
Sélectionnez le niveau d'accès
repo
.Cliquez sur Générer un jeton.
Stockez votre jeton dans Secret Manager :
Ouvrez la page Secret Manager dans la console Google Cloud:
Cliquez sur Créer un secret.
Attribuez un nom à votre secret.
Sous Valeur du secret, ajoutez votre jeton GitHub.
Pour enregistrer votre secret, cliquez sur Créer un secret.
Écrire un fichier de configuration de modèle
Rédigez un modèle de fichier de configuration décrivant le format requis pour les problèmes GitHub créés:
Dans l'exemple de fichier de configuration de modèle suivant, les champs title
et body
utilisent des variables de substitution de la compilation :
{
"title": "Build {{.Build.BuildTriggerId}}: {{.Build.Status}}",
"body": "[{{.Build.ProjectId}}] {{.Build.BuildTriggerId}} status: **{{.Build.Status}}**\n\n[View Logs]({{.Build.LogUrl}})"
}
Pour afficher l'exemple, consultez le fichier de configuration du modèle du système d'alerte de problèmes GitHub.
Vous pouvez définir des champs supplémentaires à partir des paramètres de corps disponibles du point de terminaison de l'API GitHub pour créer un problème.
Écrire un fichier de configuration du système d'alerte
Écrivez un fichier de configuration d'alerte pour configurer votre système d'alerte Google Chat et filtrer des événements de compilation:
Dans l'exemple de fichier de configuration du système d'alerte suivant, le champ filter
utilise Common Expression Language avec la variable disponible, build
, pour filtrer les événements de compilation à l'état 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
Où :
githubToken
est la variable de configuration utilisée dans cet exemple pour faire référence au jeton GitHub stocké dans Secret Manager. Le nom de la variable que vous spécifiez ici doit correspondre au champname
soussecrets
.project-id-notifiers-config
est l'emplacement où votre modèle sera importé. Le bucket sera créé s'il n'existe pas déjà.template-file-name
correspond au nom de votre fichier de modèle.myuser/myrepo
est le nom du dépôt pour lequel des problèmes seront créés.project-id
est l'ID du projet Google Cloud.secret-name
est le nom de votre secret contenant votre jeton GitHub.
Pour voir l'exemple, consultez le fichier de configuration du système d'alerte pour le système d'alerte Google Chat.
Pour en savoir plus sur les champs supplémentaires que vous pouvez filtrer, consultez la ressource Build. Pour obtenir d'autres exemples de filtrage, consultez la section Utiliser le CEL pour filtrer les événements de compilation.
Exécuter le script d'automatisation
Pour automatiser la configuration des notifications pour votre système d'alerte :
Clonez le dépôt cloud-build-notifier.
Configurez la Google Cloud CLI avec votre ID de projet et votre région:
gcloud config set project project-id gcloud config set run/region region
Où :
project-id
correspond à votre ID de projet Google Cloud.region
est la région dans laquelle déployer le système d'alerte.
Exécutez la commande suivante à la racine du dépôt :
./setup.sh githubissues config-path -t template-path -s secret-name
Où :
config-path
est le chemin d'accès au fichier de configuration de vos systèmes d'alerte.template-path
est le chemin d'accès au fichier de modèle de vos systèmes d'alerte. Votre fichier de modèle de notification contient le modèle JSON hébergé sur Cloud Storage et représente votre message de notification. Vous pouvez inclure votre fichier de modèle de système d'alerte en tant que chemin d'accès à l'aide de cette variable ou dans le champuri
de votre fichier de configuration de système d'alerte.secret-name
est le nom du secret stocké dans Secret Manager.
Une fois le script exécuté, le message suivant s'affiche :
** NOTIFIER SETUP COMPLETE **
Votre système d'alerte est maintenant configuré. Vous pouvez afficher le script complet dans le dépôt cloud-build-notifier ou exécuter ./setup.sh --help
pour obtenir les instructions d'utilisation associées au script.
Étape suivante
- Découvrez les systèmes d'alerte Cloud Build.
- Découvrez comment vous abonner aux notifications de compilation.
- Découvrez comment écrire un fichier de configuration de compilation Cloud Build.