Notificadores de Cloud Build

Los notificadores de Cloud Build son imágenes de Docker que se pueden ejecutar como contenedores en Cloud Run. Cuando los sondea una aplicación de suscriptor, los notificadores de Cloud Build usan suscripciones de envío para entregar mensajes a un servicio configurado, como Slack o un servidor SMTP.

En esta página, se proporciona una descripción general de los notificadores de Cloud Build.

Notificadores de Cloud Build

Cloud Build envía todas las actualizaciones de eventos de compilación, junto con los metadatos de compilación, a Pub/Sub en el tema cloud-builds o en un tema definido por el usuario. Los notificadores de Cloud Build se pueden configurar para escuchar ese tema, filtrar los mensajes que reciben y enviar mensajes a tu servicio a través de Cloud Run.

Todos los notificadores usan una especificación YAML común para la configuración, almacenada en Cloud Storage. Si el servicio que elegiste requiere autenticación, sus credenciales se almacenan en Secret Manager. Cloud Run enruta tu mensaje y envía tus notificaciones a tu servicio.

En el siguiente diagrama, se muestra cómo Cloud Build interactúa con otros productos Google Cloud , como Pub/Sub y Cloud Run, para enviar notificaciones:

Diagrama de los notificadores de Cloud Build

Temas de Pub/Sub para notificaciones de compilación

De forma predeterminada, Cloud Build envía notificaciones de compilación a un tema de Pub/Sub llamado cloud-builds si existe uno. También puedes crear un tema de Pub/Sub personalizado para recibir notificaciones de compilación. En tu archivo de configuración de compilación, el campo options.pubsubTopic define el nombre del tema al que Cloud Build envía notificaciones:

  • Si options.pubsubTopic se deja en blanco, Cloud Build usa un valor predeterminado de cloud-builds como el nombre del tema para las compilaciones de ese archivo. Como resultado, si creas un tema cloud-builds y dejas options.pubsubTopic sin definir en todos tus archivos de configuración de compilación, ese tema recibirá todas tus notificaciones de compilación.

  • Si especificas un nombre de tema personalizado en options.pubsubTopic, Cloud Build envía notificaciones de ese archivo de configuración de compilación a ese tema. Los nombres de temas personalizados son útiles cuando no deseas que todas tus notificaciones de compilación se publiquen en el mismo tema.

    Cuando usas un nombre de tema personalizado en un archivo de configuración de compilación, también debes asignar el rol roles/pubsub.publisher a cualquier cuenta de servicio que no sea la cuenta de servicio predeterminada de Cloud Build.

Publica notificaciones de compilación en temas de Pub/Sub en todos los proyectos

Para publicar notificaciones de compilación en un tema de Pub/Sub en un proyecto diferente del que se ejecutó la compilación, proporciona el rol roles/pubsub.publisher a la cuenta de servicio en el proyecto de destino.

Por ejemplo, tienes el proyecto A y el proyecto B. Ejecutas una compilación en el proyecto A con la cuenta de servicio A y deseas publicar notificaciones de compilación en un tema de Pub/Sub en el proyecto B. Para ello, puedes otorgar a la cuenta de servicio A el rol roles/pubsub.publisher en el proyecto B ejecutando el siguiente comando:

  gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'

Luego, puedes usar una configuración de compilación como la siguiente, que te permite ejecutar una compilación en el proyecto A y publicar notificaciones de compilación en el proyecto B:

  steps:
    - name: ubuntu
      args:
        - pwd
  serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
  options:
    pubsubTopic: projects/ProjectB/topics/CustomTopic
    logging: desired-logging-option

Notificadores compatibles que proporciona Cloud Build

Cloud Build proporciona y mantiene imágenes implementables del notificador en el repositorio cloud-build-notifiers. En la siguiente tabla, se enumeran los notificadores disponibles:

Notificador Descripción
bigquery Escribe datos de compilación en una tabla de BigQuery
githubissues usa unwebhook de GitHub para crear problemas en un repositorio de GitHub
googlechat usa un webhook de Google Chat para publicar mensajes en un espacio de Google Chat
http envía una carga útil JSON a otro extremo HTTP
slack usa un webhook de Slack para publicar mensajes en un canal de Slack
smtp envía correos electrónicos a través de un servidor SMTP

Para obtener más información sobre cómo configurar cada notificador, consulta la página correspondiente de cada servicio:

Automatiza la configuración de notificaciones

Cloud Build proporciona una secuencia de comandos de configuración que puedes usar para automatizar la configuración de notificaciones para los notificadores compatibles con Cloud Build.

Para obtener información sobre cómo configurar notificaciones para los notificadores compatibles con Cloud Build, consulta Automatiza la configuración de notificaciones.

Crea tu propio notificador

Además de los notificadores que mantiene Cloud Build, como Slack o SMTP, puedes usar la biblioteca proporcionada en el repositorio cloud-build-notifiers para crear tu propio notificador.

Para obtener información sobre cómo crear tu propio notificador, consulta Crea tu propio notificador.

¿Qué sigue?