Bloquear builds na aprovação

O Cloud Build permite configurar gatilhos que não executam imediatamente um build, mas marcam ele como pendente até que sejam aprovados. Se um usuário com permissõesaprovar um build pendente, o build iniciará. Se a aprovação for negada, o build não será iniciado.

Esta página explica como aprovar ou rejeitar builds manualmente. Para saber como configurar um gatilho que requer aprovação, consulte Como criar um gatilho de compilação.

Antes de começar

  • Enable the Cloud Build API.

    Enable the API

  • Instale a CLI do Google Cloud.

  • Caso ainda não tenha feito isso, crie um gatilho de compilação configurado para exigir aprovação.

Como conceder permissões

Se um usuário tiver o papel de Editor do Cloud Build, ele terá permissões para atualizar um gatilho para exigir ou não a aprovação. Para saber mais sobre as permissões do Cloud Build, consulte IAM e permissões. Para conceder a um usuário permissão para aprovar builds no seu projeto, o usuário precisa ter o papel Aprovador do Cloud Build.

Para adicionar o papel Aprovador do Cloud Build:

  1. Abra a página do IAM no console do Google Cloud.

    Abrir a página do IAM

  2. Clique em Conceder acesso.

    Você verá o painel Conceder acesso.

  3. Na seção Adicionar participantes, adicione usuários que terão permissão para conceder aprovação para builds pendentes em seu projeto.

    Você precisa adicionar um ou mais principais nesta seção. Se você se adicionar como um principal, ainda precisará aprovar manualmente uma versão pendente se o gatilho for controlado por uma aprovação.

  4. Na seção Atribuir papéis, selecione Cloud Build > Aprovador do Cloud Build.

Os usuários que você especificou agora têm acesso para aprovar ou rejeitar builds pendentes.

Como aprovar builds

Console

Para aprovar um build pendente no console do Google Cloud:

  1. Abra a página Painel do Cloud Build no console do Google Cloud.

    Abrir a página do painel do Cloud Build

  2. Se você tiver versões para aprovar, verá uma mensagem na parte superior da página com o número de versões à espera de sua aprovação. No lado direito da mensagem, clique em Ver builds para ver a lista de builds aguardando sua aprovação.

  3. Clique nas caixas de seleção dos builds que você quer aprovar. É possível selecionar várias versões para aprovar ou uma versão individual para aprovar.

  4. Na parte superior da página, clique em Aprovar para aprovar seus builds selecionados.

  5. Antes que o build comece, você verá a caixa de diálogo Aprovar build. Na caixa de diálogo, você pode adicionar uma mensagem opcional e um URL a ser exibido junto com a aprovação do build. Para incluir um URL, clique em Mostrar opções adicionais para inserir um URL.

  6. Na caixa de diálogo, clique em Aprovar para aprovar a versão.

Depois da aprovação, o build começará imediatamente. Se a política da organização (constraints/cloudbuild.allowedIntegrations) negar o acesso ao repositório conectado, ela vai substituir a aprovação. Para saber mais, consulte Como as builds de bloqueio funcionam na política da organização.

gcloud

Para aprovar um build pendente usando gcloud commands, execute o seguinte comando na janela do terminal:

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

Substitua os valores dos marcadores nos comandos acima pelo seguinte:

  • BUILD_ID é o ID do build que você quer aprovar.
  • PROJECT_ID é o ID do projeto.
  • [Opcional] URL é o URL que contém informações sobre a aprovação, como um link para um tíquete do JIRA.
  • [Opcional] COMMENT é a mensagem que você quer que seja exibida após a aprovação do build.

Depois da aprovação, o build começará imediatamente. Se a política da organização para definir builds para integrações permitidas (constraints/cloudbuild.allowedIntegrations) estiver definida, ela vai substituir a aprovação. Para saber mais, consulte Aplicando organização política para criar gatilhos.

Como rejeitar builds

Console

Para rejeitar um build pendente no console do Google Cloud:

  1. Abra a página Painel do Cloud Build no console do Google Cloud.

    Abrir a página do painel do Cloud Build

  2. Se você tiver versões para aprovar, verá uma mensagem na parte superior da página com o número de versões à espera de sua aprovação. No lado direito da mensagem, clique em Ver builds para ver a lista de builds aguardando sua aprovação.

  3. É possível selecionar vários builds a serem rejeitados ou um build individual para rejeitar. Clique nas caixas de seleção dos builds que você quer rejeitar.

  4. Clique em Rejeitar na parte superior da página para rejeitar o build.

Se você rejeitar uma versão, ela não será iniciada.

gcloud

Para rejeitar um build pendente usando gcloud commands, execute o seguinte comando na janela do terminal:

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

Substitua os valores dos marcadores nos comandos acima pelo seguinte:

  • BUILD_ID é o ID do build que você quer rejeitar.
  • PROJECT_ID é o ID do projeto.
  • [Opcional] URL é o URL que contém informações sobre a rejeição, como um link para um tíquete do JIRA.
  • [Opcional] COMMENT é a mensagem que você quer que seja exibida após a rejeição do build.

Se você rejeitar um build, ele nunca será iniciado.

Como receber notificações de builds aguardando aprovação

Você pode usar os notificadores do Cloud Build para receber notificações sobre builds pendentes usando um notificador mantido pelo Cloud Build, como:Slack, servidor SMTP ou por criação do seu próprio notificador.

Para configurar notificações, faça o seguinte:

  1. Siga as instruções em uma das seguintes páginas para configurar notificações para o serviço desejado:

  2. Ao configurar notificações usando uma das páginas acima, você precisa configurar seu notificador para filtrar builds com um status PENDENTE. Assim você receberá notificações sobre builds aguardando aprovação. No exemplo de arquivo de configuração do notificador SMTP a seguir, o campo de filtro usa a Common Expression Language (CEL) para filtrar eventos de build com status PENDENTE:

    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 o exemplo COMPLETO, consulte o arquivo de configuração do notificador para o notificador SMTP.

  3. Para implantar o notificador, execute o comando gcloud run no terminal. O exemplo a seguir implanta o notificador SMTP usando o 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
    

Agora você receberá notificações sobre builds pendentes para seu serviço.

A seguir