Impostare le build in base all'approvazione

Cloud Build consente di configurare trigger che non eseguono immediatamente una build, ma la contrassegnano come in attesa di approvazione. Se un utente con le autorizzazioni approva una build in attesa, la build verrà avviata. Se l'approvazione viene negata, la build non verrà avviata.

Questa pagina spiega come approvare o rifiutare manualmente le build. Per scoprire come configurare un trigger che richiede l'approvazione, consulta Creazione di un trigger di build.

Prima di iniziare

  • Abilita l'API Cloud Build.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

    Abilitare l'API

  • Installa Google Cloud CLI.

  • Se non l'hai ancora fatto, crea un trigger di build configurato per richiedere l'approvazione.

Concessione di autorizzazioni

Se un utente ha il ruolo Editor Cloud Build, ha le autorizzazioni per aggiornare un trigger in modo che richieda o non richieda l'approvazione. Per scoprire di più sulle autorizzazioni di Cloud Build, consulta IAM e autorizzazioni. Per concedere a un utente l'autorizzazione ad approvare le build all'interno del progetto, l'utente deve disporre del ruolo Approvatore Cloud Build.

Per aggiungere il ruolo Approvatore Cloud Build:

  1. Apri la pagina IAM nella Google Cloud console.

    Apri la pagina IAM

  2. Fai clic su Concedi l'accesso.

    Viene visualizzato il riquadro Concedi l'accesso.

  3. Nella sezione Aggiungi entità, aggiungi gli utenti a cui vuoi concedere l'autorizzazione ad approvare le build in attesa all'interno del progetto.

    In questa sezione devi aggiungere una o più entità. Se ti aggiungi come entità, tieni presente che dovrai comunque approvare manualmente una build in attesa se il trigger è controllato da un'approvazione.

  4. Nella sezione Assegna i ruoli, seleziona Cloud Build > Approvatore Cloud Build.

Gli utenti che hai specificato ora hanno accesso per approvare o rifiutare le build in attesa.

Approvazione delle build

Console

Per approvare una build in attesa nella Google Cloud console:

  1. Apri la pagina Dashboard di Cloud Build nella Google Cloud console.

    Apri la pagina Dashboard di Cloud Build

  2. Se hai build da approvare, nella parte superiore della pagina viene visualizzato un messaggio con il numero di build in attesa della tua approvazione. A destra del messaggio, fai clic su Visualizza build per visualizzare l'elenco delle build in attesa della tua approvazione.

  3. Fai clic sulle caselle di controllo delle build che vuoi approvare. Puoi selezionare più build da approvare o una singola build da approvare.

  4. Nella parte superiore della pagina, fai clic su Approva per approvare le build selezionate.

  5. Prima dell'avvio della build, viene visualizzata la finestra di dialogo Approva build. Nella finestra di dialogo, puoi aggiungere un messaggio facoltativo e un URL da visualizzare insieme all'approvazione della build. Per includere un URL, fai clic su Mostra opzioni aggiuntive per inserire un URL.

  6. Nella finestra di dialogo, fai clic su Approva per approvare la build.

Una volta approvata, la build verrà avviata immediatamente. Se la policy dell'organizzazione (constraints/cloudbuild.allowedIntegrations) nega l'accesso al repository connesso, la policy sostituirà l'approvazione. Per saperne di più, consulta Build di controllo sulle policy dell'organizzazione.

gcloud

Per approvare una build in attesa utilizzando gcloud commands, esegui il seguente comando nella finestra del terminale:

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

Sostituisci i valori dei segnaposto nei comandi precedenti con quanto segue:

  • BUILD_ID è l'ID della build che vuoi approvare.
  • PROJECT_ID è l'ID progetto.
  • [Facoltativo] URL è l'URL che contiene informazioni sull'approvazione, ad esempio un link a un ticket JIRA.
  • [Facoltativo] COMMENT è il messaggio che vuoi visualizzare al momento dell'approvazione della build.

Una volta approvata, la build verrà avviata immediatamente. Se è impostata la policy dell'organizzazione per definire le build per le integrazioni consentite (constraints/cloudbuild.allowedIntegrations), la policy sostituirà l'approvazione. Per saperne di più, consulta Applicazione della policy dell'organizzazione ai trigger di build.

Rifiuto delle build

Console

Per rifiutare una build in attesa nella Google Cloud console:

  1. Apri la pagina Dashboard di Cloud Build nella Google Cloud console.

    Apri la pagina Dashboard di Cloud Build

  2. Se hai build da approvare, nella parte superiore della pagina viene visualizzato un messaggio con il numero di build in attesa della tua approvazione. A destra del messaggio, fai clic su Visualizza build per visualizzare l'elenco delle build in attesa della tua approvazione.

  3. Puoi selezionare più build da rifiutare o una singola build da rifiutare. Fai clic sulle caselle di controllo delle build che vuoi rifiutare.

  4. Fai clic su Rifiuta nella parte superiore della pagina per rifiutare la build.

Se rifiuti una build, questa non verrà avviata.

gcloud

Per rifiutare una build in attesa utilizzando gcloud commands, esegui il seguente comando nella finestra del terminale:

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

Sostituisci i valori dei segnaposto nei comandi precedenti con quanto segue:

  • BUILD_ID è l'ID della build che vuoi rifiutare.
  • PROJECT_ID è l'ID progetto.
  • [Facoltativo] URL è l'URL che contiene informazioni sul rifiuto, ad esempio un link a un ticket JIRA.
  • [Facoltativo] COMMENT è il messaggio che vuoi visualizzare al momento del rifiuto della build.

Se rifiuti una build, questa non verrà mai avviata.

Ricezione di notifiche per le build in attesa di approvazione

Puoi utilizzare i notifier di Cloud Build per ricevere notifiche sulle build in attesa utilizzando un notifier gestito da Cloud Build, come Slack o un server SMTP, oppure creando il tuo notifier.

Per configurare le notifiche:

  1. Segui le istruzioni in una delle seguenti pagine per configurare le notifiche per il servizio che preferisci:

  2. Quando configuri le notifiche utilizzando una delle pagine sopra, devi configurare il notifier in modo che filtri le build con lo stato PENDING. In questo modo riceverai notifiche sulle build in attesa di approvazione. Nel seguente file di configurazione del notifier SMTP di esempio, il campo del filtro utilizza Common Expression Language (CEL) per filtrare gli eventi di build con lo stato 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
          ...
    

    Per visualizzare l'esempio completo, consulta il file di configurazione del notifier per il notifier SMTP.

  3. Per eseguire il deployment del notifier, esegui il comando gcloud run nel terminale. Il seguente esempio esegue il deployment del notifier SMTP utilizzando 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
    

Ora dovresti ricevere notifiche per le build in attesa sul tuo servizio.

Passaggi successivi