S'abonner aux notifications de compilation

Cloud Build publie des messages dans un sujet Google Pub/Sub lorsque l'état de la compilation change, par exemple lors de la création de la compilation, lorsque la compilation passe à un état fonctionnel et lorsque la compilation se termine.

Le sujet Pub/Sub dans lequel Cloud Build publie ces messages d'informations sur la compilation se nomme cloud-builds. Chaque message contient une représentation de votre ressource Build sous forme de chaîne JSON encodée en base64 dans l'attribut message.data. L'ID unique de la compilation et son état sont renseignés dans le champ message.attributes.

Vous pouvez utiliser un modèle push ou pull avec vos abonnements Pub/Sub.

Recevoir des notifications de compilation

Pour recevoir des notifications de compilation, procédez comme suit :

  1. Activez l'API Cloud Build :

    Activer l'API Cloud Build

    Lorsque vous activez l'API Cloud Build, le compte de service Agent de service Cloud Build est automatiquement ajouté à votre projet. Le compte de service vous permet de recevoir des notifications de compilation via Pub/Sub.

    Le compte de service a le format suivant, où project-number est le numéro de votre projet :

     service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
    

    Si le compte de service de l'agent de service Cloud Build ne s'affiche pas sur votre page IAM, ou si vous ne pouvez pas recevoir de notifications via Pub/Sub, procédez comme suit pour ajouter le compte de service de l'agent de service Cloud Build à votre projet :

    1. Ouvrez la page IAM dans Google Cloud Console :

      Ouvrir la page IAM

    2. Cliquez sur Accorder l'accès.

    3. Ajoutez le compte principal suivant, où project-number correspond au numéro de votre projet :

      service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
      
    4. Pour votre rôle, sélectionnez Agents de service > Agent de service Cloud Build.

    5. Cliquez sur Enregistrer.

  2. Activer l'API Pub/Sub :

    Activez l'API Pub/Sub

  3. Créez le sujet cloud-builds :

    gcloud pubsub topics create cloud-builds
    

    Pour en savoir plus sur la gestion des sujets Pub/Sub, consultez la page Gérer les sujets et les abonnements.

Push

Les abonnements Push envoient des messages à un point de terminaison HTTP que vous définissez. Les messages sont diffusés dès qu'ils sont publiés dans le thème.

Les messages envoyés depuis des abonnements Push se présentent comme suit :

{
  "message": {
    "attributes": {
      "buildId": "abcd-efgh...",
      "status": "SUCCESS"
    },
    "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
    "message_id": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Pull

Les abonnements Pull envoient des messages lorsqu'ils sont interrogés par l'application souscrite. Les messages sont diffusés lorsque l'abonnement est interrogé.

Les messages envoyés depuis des abonnements Pull se présentent comme suit :

{
  "receivedMessages": [
    {
      "ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
      "message": {
        "attributes": {
          "buildId": "abcd-efgh-...",
          "status": "SUCCESS"
        },
        "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
        "messageId": "19917247034"
      }
    }
  ]
}

Comment s'abonner aux notifications de mise à jour de compilation ?

Vous disposez de plusieurs options pour vous abonner aux notifications de mise à jour de compilation. Par exemple, vous pouvez envoyer des messages à un point de terminaison ou développer une application Python pour interroger votre abonnement.

Pour savoir comment configurer les abonnements Pub/Sub pour les informations de compilation, consultez le Guide pour les abonnés Pub/Sub. Vous pouvez également vous renseigner sur les bibliothèques clientes Pub/Sub, qui facilitent le développement d'applications pour les abonnés.

Pour apprendre à utiliser Pub/Sub afin d'envoyer des mises à jour de compilation tels que Slack ou les e-mails, consultez la section Systèmes d'alerte Cloud Build.