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 o build é criado, quando ele começa a funcionar e quando ele é concluído. Cada mensagem contém uma representação de string JSON em base64 do recurso do build no atributo message.data. O ID exclusivo e o status da build estão 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

    Quando você ativa a API Cloud Build, a conta de serviço do Agente de serviço do Cloud Build é adicionada automaticamente ao projeto. A conta de serviço permite receber 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.iam.gserviceaccount.com
    

    Se você não encontrar a conta de serviço do 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 do 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.iam.gserviceaccount.com
      
    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 ao tópico personalizado. Nesse caso, você cria um tópico com o mesmo nome de tópico personalizado:

    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.

Enviar inscrições

As inscrições push entregam mensagens para um ponto de extremidade HTTP definido por você. As mensagens são entregues assim que são publicadas no tópico.

As mensagens enviadas a partir de inscrições push são assim:

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

Assinaturas de pull

As inscrições pull entregam mensagens quando pesquisadas pelo aplicativo inscrito. As mensagens são entregues quando a inscrição é pesquisada.

As mensagens enviadas a partir de inscrições 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 do build

Você tem várias opções para assinar e criar notificações de atualização. 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 as Bibliotecas de cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos de assinantes.

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