Restringir las compilaciones con aprobaciones

Cloud Build te permite configurar activadores que no ejecutan una compilación inmediatamente, sino que marcan una compilación como pendiente hasta que se aprueba. Si un usuario con permisos aprueba una compilación pendiente, esta se iniciará. Si se deniega la aprobación, la compilación no se iniciará.

En esta página se explica cómo aprobar o rechazar compilaciones manualmente. Para saber cómo configurar un activador que requiera aprobación, consulta el artículo Crear un activador de compilación.

Antes de empezar

  • Enable the Cloud Build API.

    Enable the API

  • Instala Google Cloud CLI.

  • Si aún no lo has hecho, crea un activador de compilación configurado para requerir aprobación.

Concediendo permisos

Si un usuario tiene el rol Editor de Cloud Build, puede actualizar un activador para que requiera o no aprobación. Para obtener más información sobre los permisos de Cloud Build, consulta Gestión de identidades y accesos y permisos. Para conceder permiso a un usuario para aprobar compilaciones en tu proyecto, el usuario debe tener el rol Aprobador de Cloud Build.

Para añadir el rol Aprobador de Cloud Build, sigue estos pasos:

  1. Abre la página IAM en la Google Cloud consola.

    Abre la página Gestión de identidades y accesos.

  2. Haz clic en Conceder acceso.

    Verás el panel Dar acceso.

  3. En la sección Añadir principales, añade usuarios para darles permiso para aprobar compilaciones pendientes en tu proyecto.

    Debes añadir uno o varios principales en esta sección. Si te añades como principal, ten en cuenta que tendrás que aprobar manualmente una compilación pendiente si tu activador está protegido por una aprobación.

  4. En la sección Asignar roles, selecciona Cloud Build > Aprobador de Cloud Build.

Los usuarios que has especificado ahora tienen acceso para aprobar o rechazar compilaciones pendientes.

Aprobar compilaciones

Consola

Para aprobar una compilación pendiente en la consola de Google Cloud , sigue estos pasos:

  1. Abre la página Panel de control de Cloud Build en la Google Cloud consola.

    Abre la página Panel de control de Cloud Build.

  2. Si tienes compilaciones que aprobar, verás un mensaje en la parte superior de la página con el número de compilaciones que están pendientes de tu aprobación. A la derecha del mensaje, haz clic en Ver compilaciones para ver la lista de compilaciones que están pendientes de tu aprobación.

  3. Haz clic en las casillas de las compilaciones que quieras aprobar. Puedes seleccionar varias compilaciones para aprobarlas o una sola.

  4. En la parte superior de la página, haz clic en Aprobar para aprobar las compilaciones seleccionadas.

  5. Antes de que empiece la compilación, verás el cuadro de diálogo Aprobar compilación. En el cuadro de diálogo, puedes añadir un mensaje opcional y una URL que se mostrarán junto con la aprobación de la compilación. Para incluir una URL, haz clic en Mostrar opciones adicionales e introduce una URL.

  6. En el cuadro de diálogo, haz clic en Aprobar para aprobar la compilación.

Una vez que lo apruebes, la compilación se iniciará inmediatamente. Si la política de la organización (constraints/cloudbuild.allowedIntegrations) deniega el acceso al repositorio conectado, la política anulará la aprobación. Para obtener más información, consulta Gate builds on organization policy (Puerta de compilaciones en la política de organización).

gcloud

Para aprobar una compilación pendiente con gcloud commands, ejecuta el siguiente comando en la ventana de tu terminal:

gcloud builds approve BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Sustituye los valores de los marcadores de posición de los comandos anteriores por los siguientes:

  • BUILD_ID es el ID de la compilación que quieres aprobar.
  • PROJECT_ID es el ID del proyecto.
  • [Opcional] URL es la URL que contiene información sobre la aprobación, como un enlace a una incidencia de JIRA.
  • [Opcional] COMMENT es el mensaje que quieres que se muestre cuando se apruebe la compilación.

Una vez que lo apruebes, la compilación se iniciará inmediatamente. Si se define la política de la organización para definir compilaciones de integraciones permitidas (constraints/cloudbuild.allowedIntegrations), la política anulará la aprobación. Para obtener más información, consulta Aplicar políticas de la organización a los activadores de compilación.

Rechazar compilaciones

Consola

Para rechazar una compilación pendiente en la consola de Google Cloud :

  1. Abre la página Panel de control de Cloud Build en la Google Cloud consola.

    Abre la página Panel de control de Cloud Build.

  2. Si tienes compilaciones que aprobar, verás un mensaje en la parte superior de la página con el número de compilaciones que están pendientes de tu aprobación. A la derecha del mensaje, haz clic en Ver compilaciones para ver la lista de compilaciones que están pendientes de tu aprobación.

  3. Puedes seleccionar varias compilaciones para rechazarlas o una compilación concreta. Marca las casillas de las compilaciones que quieras rechazar.

  4. Haz clic en Rechazar en la parte superior de la página para rechazar la compilación.

Si rechazas una compilación, no se iniciará.

gcloud

Para rechazar una compilación pendiente con gcloud commands, ejecuta el siguiente comando en la ventana de terminal:

gcloud builds reject BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

Sustituye los valores de los marcadores de posición de los comandos anteriores por los siguientes:

  • BUILD_ID es el ID de la compilación que quieres rechazar.
  • PROJECT_ID es el ID del proyecto.
  • [Opcional] URL es la URL que contiene información sobre el rechazo, como un enlace a una incidencia de JIRA.
  • [Opcional] COMMENT es el mensaje que quieres que se muestre cuando se rechace la compilación.

Si rechazas una compilación, nunca se iniciará.

Recibir notificaciones de compilaciones pendientes de aprobación

Puedes usar notificadores de Cloud Build para recibir notificaciones sobre compilaciones pendientes mediante un notificador mantenido por Cloud Build, como un servidor Slack o SMTP, o bien creando tu propio notificador.

Para configurar las notificaciones, sigue estos pasos:

  1. Sigue las instrucciones de una de las páginas siguientes para configurar las notificaciones del servicio que quieras:

  2. Cuando configures las notificaciones en una de las páginas anteriores, debes configurar tu notificador para que filtre las compilaciones con el estado PENDING. De esta forma, recibirás notificaciones sobre las compilaciones que estén pendientes de aprobación. En el siguiente archivo de configuración de notificador SMTP de ejemplo, el campo de filtro usa el lenguaje de expresión común (CEL) para filtrar los eventos de compilación con el estado PENDING:

    apiVersion: cloud-build-notifiers/v1
    kind: SMTPNotifier
    metadata:
      name: example-smtp-notifier
    spec:
      notification:
        filter: build.status == Build.Status.PENDING
        delivery:
          server: example.gmail.com
          port: 0000
          sender: sender@example.com
          ...
    

    Para ver el ejemplo completo, consulta el archivo de configuración del notificador del notificador SMTP.

  3. Para implementar tu notificador, ejecuta el comando gcloud run en tu terminal. En el siguiente ejemplo se despliega el notificador SMTP mediante Cloud Run.

    gcloud run deploy example.gmail.com \
      --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \
      --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
    

Ahora deberías recibir notificaciones de las compilaciones pendientes en tu servicio.

Siguientes pasos