Puertas de compilación en base a aprobación

Cloud Build te permite configurar activadores que no ejecutan una compilación de forma inmediata, sino que marcan una compilación como pendiente hasta que se apruebe. Si un usuario con permisos aprueba una compilación pendiente, la compilación comenzará. Si se rechaza la aprobación, la compilación no se iniciará.

En esta página, se explica cómo puedes aprobar o rechazar compilaciones de forma manual. Para aprender a configurar un activador que requiera aprobación, consulta Crea un activador de compilación.

Antes de comenzar

  • Habilita la API de Cloud Build.

    Habilita la API

  • Instala Google Cloud CLI.

  • Si aún no lo hiciste, crea un activador de compilación configurado para que requiera aprobación.

Otorgando permisos

Si un usuario tiene la función de editor de Cloud Build, tiene permisos para actualizar un activador a fin de que requiera o no aprobación. Para obtener más información sobre los permisos de Cloud Build, consulta IAM y los permisos. A fin de otorgar permiso a un usuario para aprobar compilaciones dentro de tu proyecto, el usuario debe tener la función Aprobador de Cloud Build.

Para agregar la función Responsable de aprobación de Cloud Build, haz lo siguiente:

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

    Abrir la página IAM

  2. Haga clic en Agregar.

    Verás el panel Agregar principales.

  3. En la sección Principales nuevas, agrega usuarios a fin de que tengan permiso para otorgar la aprobación de compilaciones pendientes dentro de tu proyecto.

    Debes agregar una o más principales en esta sección. Si te agregas como principal, ten en cuenta que aún deberás aprobar manualmente una compilación pendiente si tu activador está controlado por una aprobación.

  4. En la sección Función, selecciona Cloud Build > Responsable de aprobación de Cloud Build.

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

Aprobar compilaciones

Console

Para aprobar una compilación pendiente en Google Cloud Console, sigue estos pasos:

  1. En Google Cloud Console, abre la página del panel de Cloud Build.

    Abrir la página del panel de Cloud Build

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

  3. Haz clic en las casillas de verificación de las compilaciones que deseas aprobar. Puedes seleccionar varias compilaciones para aprobarlas o una compilación individual para aprobar.

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

  5. Antes de que comience la compilación, verás el cuadro de diálogo Aprobar compilación. En el cuadro de diálogo, puedes agregar un mensaje opcional y una URL que se mostrará junto con la aprobación de la compilación. Para incluir una URL, haz clic en Mostrar opciones adicionales para ingresar una URL.

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

Una vez que apruebes, la compilación comenzará de inmediato. Si la política de la organización (constraints/cloudbuild.allowedIntegrations) rechaza el acceso al repositorio conectado, la política anulará la aprobación. Para obtener más información, consulta Limita las compilaciones activadas desde servicios externos.

gcloud

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

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

Reemplaza los valores de marcador de posición en los comandos anteriores por la siguiente información:

  • BUILD_ID es el ID de la compilación que deseas aprobar.
  • PROJECT_ID es el ID del proyecto.
  • URL es la URL que contiene información sobre la aprobación, como un vínculo a un ticket de JIRA (opcional).
  • COMMENT es el mensaje que deseas que se muestre una vez que se apruebe la compilación (opcional).

Una vez que apruebes, la compilación comenzará de inmediato. Si estableces la política de la organización para definir compilaciones de integraciones permitidas (constraints/cloudbuild.allowedIntegrations), la política anulará la aprobación. Si deseas obtener más información, consulta Aplica políticas de la organización para compilar activadores.

Rechazar compilaciones

Console

Para rechazar una compilación pendiente en Google Cloud Console, sigue estos pasos:

  1. En Google Cloud Console, abre la página del panel de Cloud Build.

    Abrir la página del panel de Cloud Build

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

  3. Puedes seleccionar varias compilaciones para rechazarlas o una compilación individual para rechazarla. Haz clic en las casillas de verificación de las compilaciones que deseas rechazar.

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

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

gcloud

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

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

Reemplaza los valores de marcador de posición en los comandos anteriores por la siguiente información:

  • BUILD_ID es el ID de la compilación que deseas rechazar.
  • PROJECT_ID es el ID del proyecto.
  • URL es la URL que contiene información sobre el rechazo, como un vínculo a un ticket de JIRA (opcional).
  • COMMENT es el mensaje que deseas que se muestre cuando se rechaza la compilación (opcional).

Si rechazas una compilación, esta nunca comenzará.

Recibe notificaciones de compilaciones en espera de aprobación

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

Para configurar las notificaciones, haz lo siguiente:

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

  2. Cuando configuras notificaciones con una de las páginas anteriores, debes configurar tu notificador para filtrar las compilaciones con un estado PENDING. Esto te enviará notificaciones sobre compilaciones que esperan su aprobación. En el siguiente ejemplo de archivo de configuración del notificador SMTP, el campo de filtro usa Common Expression Language (CEL) para filtrar eventos de compilación con un 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, consulta el archivo de configuración del notificador para el notificador SMTP.

  3. Para implementar tu notificador, ejecuta el comando gcloud run en tu terminal. En el siguiente ejemplo, se implementa 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 sobre las compilaciones pendientes en tu servicio.

¿Qué sigue?