Como criar repositórios do GitHub

Com o Cloud Build, é possível criar gatilhos para criar repositórios hospedados no GitHub. É possível executar builds em resposta a eventos como pushes de commit ou solicitações de mesclagem associadas ao seu repositório do GitHub.

Nesta página, explicamos como ativar gatilhos de build para uma instância do GitHub. Para mais informações, consulte Gatilhos do Cloud Build e Repositórios do Cloud Build.

Antes de começar

Siga as instruções para se conectar a um host do GitHub.
  • Enable the Cloud Build API.

    Enable the API

Para criar um acionador para um repositório do GitHub, é preciso ter uma conexão entre Google Cloud e seu repositório. Para criar uma conexão usando o app GitHub em Google Cloud, consulte Conectar a um repositório do GitHub.

Criar um gatilho do GitHub

Nesta seção, explicamos como criar um gatilho e vinculá-lo à sua instalação do GitHub.

Google Cloud console

Para criar gatilhos do GitHub usando o console Google Cloud , faça o seguinte:

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

    Abrir a página Acionadores

  2. Selecione o projeto do Google Cloud e clique em Abrir.

  3. Clique em Criar gatilho.

  4. Preencha as configurações de gatilho a seguir:

    • Nome: insira um nome para o gatilho.

    • Região: selecione a região do seu gatilho.

      • Se o arquivo de configuração de build associado ao gatilho especificar um pool particular, o Cloud Build usará o pool particular para executar o build. Nesse caso, a região especificada no gatilho precisa corresponder à região em que você criou o pool particular.
      • Se o arquivo de configuração de build associado ao gatilho não especificar um pool particular, o Cloud Build usará o pool padrão para executar o build na mesma região do gatilho.

    • Descrição (opcional): insira uma descrição para o gatilho.

    • Evento: selecione o evento de repositório para invocar seu gatilho.

      • Enviar para uma ramificação: defina o gatilho para iniciar um build em confirmações de uma ramificação específica.

      • Enviar nova tag por push: configure o gatilho para iniciar um build em confirmações que contenham uma tag específica.

      • Solicitação de pull: configure o gatilho para iniciar uma build em confirmações para uma solicitação de envio.

    • Origem: configure informações sobre seu repositório do GitHub:

      • Serviço de repositório: selecione Cloud Build.

      • Geração de repositório: selecione Developer Connect como sua origem.

      • Repositório: na lista de repositórios disponíveis, selecione o repositório.

      • Ramificação ou Tag: especifique uma expressão regular correspondente ao valor da ramificação ou da tag. Para ver informações sobre a sintaxe aceitável de expressões regulares, consulte Sintaxe de RE2 (em inglês).

      • Controle de comentários: se você selecionou Solicitação de envio como seu Evento, escolha uma das seguintes opções para controlar se um build é executado automaticamente pelo gatilho:

        • Obrigatório, exceto para proprietários e colaboradores: quando uma solicitação de envio é criada ou atualizada por um proprietário ou colaborador de repositório, os builds são executados automaticamente pelo gatilho. Se um colaborador externo iniciar a ação, os builds serão executados somente depois que um proprietário ou colaborador comentar a /gcbrun na solicitação de envio.

        • Obrigatório: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, os builds só são executados depois que um proprietário ou colaborador comenta /gcbrun na solicitação de envio. Os builds são executados sempre que uma mudança é feita em uma solicitação de envio.

        • Não necessário: quando uma solicitação de envio é criada ou atualizada por qualquer colaborador, os builds são executados automaticamente por gatilhos.

    • Configuração: selecione o arquivo de configuração do build localizado no seu repositório remoto ou crie um arquivo de configuração do build inline para usar no build.

      • Type: selecione o tipo de configuração a ser usado para o build.
        • Detecção automática: o Cloud Build detecta automaticamente o tipo de configuração se você tiver um cloudbuild.yaml ou Dockerfile no repositório.
        • Arquivo de configuração do Cloud Build (yaml ou json): use um arquivo de configuração do build na sua configuração.
        • Dockerfile: use um Dockerfile para sua configuração.
        • Buildpacks: use os buildpacks na sua configuração.
      • Local: especifique o local de configuração.

        • Repositório: se o arquivo de configuração estiver no seu repositório remoto, forneça o local do arquivo de configuração do build ou o diretório Dockerfile e um nome para a imagem resultante. Se sua configuração for um Dockerfile, você poderá fornecer um tempo limite para a criação. Depois de fornecer o Dockerfile e o nome da imagem, você verá uma visualização do comando docker build que sua o build executará.
        • Inline: se você selecionou o arquivo de configuração do Cloud Build (yaml ou json) como opção de configuração, pode especificar a configuração do build inline. Clique em Abrir editor para gravar o arquivo de configuração do build no Google Cloud console usando a sintaxe YAML ou JSON. Clique em Concluído para salvar a configuração do build.
    • Variáveis de substituição (opcional): se você selecionou o arquivo de configuração do Cloud Build como opção de configuração de build, escolha definir variáveis de substituição específicas do gatilho usando esse campo. Por exemplo, vamos supor que você esteja criando vários gatilhos em que cada um deles implanta seu app em um ambiente específico. É possível especificar que seu app seja implantado em um ambiente em seu arquivo de configuração da compilação e usar esse campo para definir variáveis de substituição especificando em qual ambiente esse gatilho deverá ser implantado. Para informações sobre como especificar valores de substituição em arquivos de configuração da compilação, consulte Como substituir valores de variável.

    • Registros da versão (opcional): marque a caixa para enviar registros da versão ao GitHub. Para saber como visualizar registros de build, consulte Como visualizar registros de build.

    • Conta de serviço: selecione a conta de serviço a ser usada ao invocar seu gatilho. Se a política da organização permitir o uso da conta de serviço legada do Cloud Build, deixe esse campo em branco para usar a conta legada. Caso contrário, selecione a conta de serviço específica a ser usada, mesmo que seja a conta de serviço padrão do Compute Engine.

  5. Clique em Criar para salvar o gatilho de compilação.

Para criar acionadores do GitHub usando comandos gcloud, consulte os comandos gcloud para Como criar um gatilho de compilação.

CLI da gcloud

Para criar gatilhos do GitHub usando comandos gcloud, execute o seguinte comando:

    gcloud alpha builds triggers create developer connect
      --name=TRIGGER_NAME \
      --git-repository-link=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/gitRepositoryLinks/REPO_NAME \
      --branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
      --build-config=BUILD_CONFIG_FILE \
      --region=REGION \
      --service-account=SERVICE-ACCOUNT

Em que:

  • TRIGGER_NAME é o nome do gatilho.
  • PROJECT_ID é o ID do projeto Google Cloud .
  • REGION é a região do gatilho.
  • CONNECTION_NAME é o nome da sua conexão do GitHub.
  • GIT_REPOSITORY_LINK é o link para seu repositório Git.
  • BRANCH_PATTERN é o nome da ramificação no seu repositório para invocar o build.
  • TAG_PATTERN é o nome da tag no repositório para invocar o build.
  • BUILD_CONFIG_FILE é o caminho para seu arquivo de configuração da compilação.
  • SERVICE-ACCOUNT é a conta de serviço a ser usada para operações de gatilho e build.

API

Para criar um gatilho do GitHub com a API, use o modelo JSON a seguir:

  {
      "filename": "cloudbuild.yaml",
      "name": "TRIGGER_NAME",
      "description": "TRIGGER_DESCRIPTION",
      "serviceAccount": "SERVICE_ACCOUNT",
      "github": {
          "owner": "OWNER",
          "name": "REPO_NAME",
          "push": {
              "branch": ".*"
          },
      
      },
      "include_build_logs": include-build-logs-value
  }

Em que:

  • TRIGGER_NAME é um nome para o gatilho.
  • TRIGGER_DESCRIPTION é uma descrição do gatilho.
  • SERVICE_ACCOUNT é a conta de serviço a ser usada para operações de gatilho e build.
  • OWNER é o proprietário do repositório do GitHub.
  • REPO_NAME é o nome do repositório do GitHub.
  • include-build-logs-value é o valor do campo include_build_logs opcional. Se esse campo tiver um valor de INCLUDE_BUILD_LOGS_SPECIFIED, os registros de build serão mostrados no repositório.

Insira o seguinte comando curl no terminal:

curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json

Em que:

  • PROJECT_NUMBER é o número do projeto Google Cloud .
  • PROJECT_ID é o ID do projeto Google Cloud .

Criar e visualizar as mudanças

Para criar usando gatilhos do GitHub, você precisará enviar e confirmar alterações para seu repositório de origem conectado ou configurar seu build em solicitações de envio. Depois de verificar as alterações, o Cloud Build criará o código.

Para ver as alterações no build no GitHub, acesse a guia Verificações no seu repositório.

Captura de tela da guia de conversa

Você verá que o Cloud Build criou as alterações. Você também verá outros detalhes da build, como o tempo que levou para criar o código, o código da build.

Para ver as mudanças do build no Cloud Build, clique em Ver mais detalhes no Google Cloud Build. A página Detalhes da build no console do Google Cloud é aberta, mostrando informações da build, como status, registros e etapas de build.

Compartilhamento de dados

Os dados enviados ao GitHub pelo Cloud Build ajudam a identificar gatilhos por nome e ver os resultados do build no GitHub.

Os seguintes dados são compartilhados entre o Cloud Build e o GitHub:

  • Código do projeto do Cloud
  • Nome do gatilho
  • registros de compilações.

Se você criou gatilhos antes de agosto de 2020, talvez o compartilhamento de dados não esteja ativado para seu projeto. É possível ativar o compartilhamento de dados para todos os gatilhos do GitHub no seu projeto clicando em Ativar na guia de compartilhamento de dados do Cloud Build.

Se as verificações de status necessárias estiverem ativadas para um repositório do GitHub, a ativação do compartilhamento de dados poderá interromper temporariamente as verificações de status. Para ajustar as configurações de verificação de status para procurar seu nome de gatilho, é possível:

  • desativar qualquer verificação necessária específica do Cloud Build no repositório do GitHub;
  • garantir que o compartilhamento de dados esteja ativado no Cloud Build;
  • executar uma nova compilação no Cloud Build que publica o status no seu repositório;
  • reativar verificações de status necessárias, selecionando o nome do gatilho.

A seguir