Inscrever-se para receber notificações de build

O Cloud Build publica mensagens em um tópico do Google Pub/Sub quando o estado do build muda, como quando ele é criado, quando ele passa para um estado de trabalho e quando ele é concluído. Cada mensagem contém uma representação de string JSON em base64 do recurso de build no atributo message.data. O ID exclusivo e o status do build podem ser encontrados no campo message.attributes.

Por padrão, as mensagens são publicadas no tópico cloud-builds. Também é possível especificar um nome de tópico personalizado no campo options.pubsubTopic do arquivo de configuração do build. Para mais informações sobre como configurar nomes de tópicos no arquivo de configuração do build, consulte Tópicos do Pub/Sub para notificações de build.

É possível usar um modelo push ou pull nas assinaturas do Pub/Sub.

Receber notificações de build

Para receber notificações da build:

  1. Ativar a API Cloud Build

    Ativar a API Cloud Build

    Na maioria dos casos, quando você ativa a API Cloud Build, a conta de serviço do Agente de serviço do Cloud Build é adicionada automaticamente ao seu projeto. A conta de serviço permite que você receba notificações de build do Pub/Sub.

    A conta de serviço tem o seguinte formato, em que project-number é o número do projeto:

     service-project-number@gcp-sa-cloudbuild.
    

    Se você não encontrar a conta de serviço Agente de serviço do Cloud Build na página do IAM ou não conseguir receber notificações do Pub/Sub, siga estas etapas para adicionar a conta de serviço Agente de serviço do Cloud Build ao seu projeto:

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

      Abrir a página do IAM

    2. Clique em Conceder acesso.

    3. Adicione a seguinte conta principal, em que project-number é o número do projeto:

      service-project-number@gcp-sa-cloudbuild.
      
    4. Selecione Agentes de serviço > Agente de serviço do Cloud Build como seu papel.

    5. Clique em Save.

  2. Habilitar a API Pub/Sub:

    Habilitar a API Pub/Sub

  3. Crie o tópico cloud-builds:

    gcloud pubsub topics create cloud-builds
    

    Também é possível definir um nome de tópico personalizado no arquivo de configuração do build para que as mensagens sejam enviadas para o tópico personalizado. Nesse caso, você criaria um tópico com o mesmo nome:

    gcloud pubsub topics create topic-name
    

    Para mais informações, consulte Tópicos do Pub/Sub para notificações de build.

    Para saber mais sobre como gerenciar tópicos do Pub/Sub, consulte Como gerenciar tópicos e assinaturas.

Assinaturas por push

As assinaturas por push entregam mensagens a um endpoint HTTP definido por você. As mensagens são entregues assim que são publicadas no tópico.

As mensagens enviadas de assinaturas por push são assim:

{
  "message": {
    "attributes": {
      "buildId": "abcd-efgh...",
      "status": "SUCCESS"
    },
    "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Assinaturas por pull

As assinaturas por pull entregam mensagens quando são consultadas pelo aplicativo assinante. As mensagens são entregues quando a inscrição é pesquisada.

As mensagens enviadas de assinaturas por pull são assim:

{
  "receivedMessages": [
    {
      "ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
      "message": {
        "attributes": {
          "buildId": "abcd-efgh-...",
          "status": "SUCCESS"
        },
        "data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
        "messageId": "19917247034"
      }
    }
  ]
}

Inscrever-se para receber notificações de atualização de build

Você tem várias opções para se inscrever para receber notificações de atualização de build. Por exemplo, é possível enviar mensagens por push para um endpoint ou gravar um aplicativo Python para pesquisar sua assinatura.

Para saber como configurar assinaturas do Pub/Sub para atualizações de build, leia o Guia de assinantes do Pub/Sub. Você também pode aprender sobre Bibliotecas cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos assinantes.

Para saber como usar o Pub/Sub para enviar atualizações de build para e-mails ou serviços como o Slack, consulte Notificadores do Cloud Build.