Build build all'approvazione

Cloud Build ti consente di configurare trigger che non vengono eseguiti immediatamente, ma contrassegnano una build come in sospeso fino all'approvazione. Se un utente con autorizzazioni approva una build in sospeso, questa verrà avviata. Se l'approvazione viene rifiutata, la build non inizierà.

In questa pagina viene spiegato come approvare o rifiutare manualmente le build. Per informazioni su come configurare un trigger che richiede approvazione, consulta la sezione Creare un trigger di build.

Prima di iniziare

  • Attiva l'API Cloud Build.

    Abilita l'API

Concessione di autorizzazioni

Un utente con il ruolo Cloud Build Editor è autorizzato a aggiornare un trigger per richiedere o meno l'approvazione. Per scoprire di più sulle autorizzazioni di Cloud Build, consulta le autorizzazioni e le autorizzazioni di Cloud Build. Per concedere l'autorizzazione di approvazione delle build all'interno del progetto, l'utente deve avere il ruolo Approvatore di Cloud Build.

Per aggiungere il ruolo Approvatore Cloud Build:

  1. Apri la pagina IAM in Google Cloud Console.

    Apri la pagina IAM

  2. Fai clic su Aggiungi.

    Viene visualizzato il riquadro Aggiungi entità.

  3. Nella sezione Nuove entità, aggiungi gli utenti per autorizzare questi utenti a concedere l'approvazione per 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 l'attivatore è vincolato a un'approvazione.

  4. Nella sezione Ruolo, seleziona Cloud Build > Approvatore Cloud Build.

Gli utenti specificati ora possono accedere per approvare o rifiutare le build in sospeso.

Approvazione delle build

console

Per approvare una build in attesa in Google Cloud Console:

  1. Apri la pagina Cloud Build Dashboard in 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 di approvazione. A destra del messaggio, fai clic su Visualizza build per visualizzare l'elenco delle build in attesa di 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, verrà 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 e inserisci un URL.

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

Dopo l'approvazione, la build inizierà immediatamente. Se il criterio dell'organizzazione (constraints/cloudbuild.allowedIntegrations) nega l'accesso al repository connesso, il criterio sostituirà l'approvazione. Per saperne di più, vedi Limitare le build attivate dai servizi esterni.

gcloud

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

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

Sostituisci i valori segnaposto nei comandi riportati sopra con i seguenti valori:

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

Dopo l'approvazione, la build inizierà immediatamente. Se è impostato il criterio dell'organizzazione per definire le build per le integrazioni consentite (constraints/cloudbuild.allowedIntegrations), il criterio sostituirà l'approvazione. Per scoprire di più, consulta Applicazione dei criteri dell'organizzazione per creare trigger.

Rifiuto delle build

console

Per rifiutare una build in attesa in Google Cloud Console:

  1. Apri la pagina Cloud Build Dashboard in 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 di approvazione. A destra del messaggio, fai clic su Visualizza build per visualizzare l'elenco delle build in attesa di 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 si avvierà.

gcloud

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

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

Sostituisci i valori segnaposto nei comandi riportati sopra con i seguenti valori:

  • BUILD_ID è l'ID della build che vuoi rifiutare.
  • PROJECT_ID è l'ID progetto.
  • [Facoltativo] URL è l'URL contenente le informazioni sul rifiuto, ad esempio un link a un ticket JIRA.
  • (Facoltativo) COMMENT è il messaggio che vuoi mostrare al rifiuto della build.

Se rifiuti una build, questa non si avvierà mai.

Ricezione di notifiche per le build in attesa di approvazione

Puoi utilizzare i rilevatori di Cloud Build per ricevere notifiche relative alle build in attesa utilizzando un notificatore mantenuto nel cloud, ad esempio il server Slack o SMTP, oppure creando il tuo notificatore.

Per configurare le notifiche:

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

  2. Quando configuri le notifiche utilizzando una delle pagine precedenti, devi configurare il tuo notificatore per filtrare le build con lo stato IN ATTESA. Riceverai notifiche sulle build in attesa di approvazione. Nel seguente file di configurazione dello strumento di notifica SMTP di esempio, il campo filtro utilizza il 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 notificatore per il notificatore SMTP.

  3. Per eseguire il deployment del tuo notificatore, esegui il comando gcloud run nel tuo terminale. L'esempio seguente esegue il deployment del notificatore 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 relative alle build in attesa del tuo servizio.

Passaggi successivi