O Cloud Build permite-lhe criar acionadores para compilar a partir de repositórios alojados no GitHub. Pode executar compilações em resposta a eventos como envios de commits ou pedidos de união associados ao seu repositório do GitHub.
Esta página explica como pode ativar acionadores de compilação para uma instância do GitHub. Para mais informações, consulte os Acionadores do Cloud Build e os Repositórios do Cloud Build.
Antes de começar
Siga as instruções para estabelecer ligação a um anfitrião do GitHub.-
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Para criar um acionador para um repositório GitHub, tem de ter uma associação entre o Google Cloud e o seu repositório. Google Cloud Para criar uma associação através da app GitHub no Google Cloud, consulte o artigo Associar a um repositório do GitHub.
Crie um acionador do GitHub
Esta secção explica como pode criar um acionador e associá-lo à sua instalação do GitHub.
Google Cloud consola
Para criar acionadores do GitHub através da Google Cloud consola, faça o seguinte:
Abra a página Acionadores na Google Cloud consola.
Selecione o seu Google Cloud projeto e clique em Abrir.
Clique em Criar acionador.
Introduza as seguintes definições do acionador:
Nome: introduza um nome para o acionador.
Região: selecione a região para o seu acionador.
* If the build config file associated with the trigger specifies a [private pool](/build/docs/private-pools/private-pools-overview), then Cloud Build uses the private pool to run your build. In this case, the region you specify in your trigger must match the region where you created your private pool. * If the build config file associated with the trigger **doesn't** specify a private pool, then Cloud Build uses the default pool to run your build in the same region as your trigger.
Descrição (opcional): introduza uma descrição para o acionador.
Evento: selecione o evento do repositório para invocar o acionador.
Enviar para um ramo: defina o acionador para iniciar uma compilação em commits para um ramo específico.
Enviar nova etiqueta: defina o acionador para iniciar uma compilação em commits que contenham uma etiqueta específica.
Pedido de envio: defina o seu acionador para iniciar uma compilação em commits para um pedido de envio.
Origem: configure informações sobre o seu repositório do GitHub:
Serviço de repositório: selecione Cloud Build.
Geração de repositórios: selecione 1.ª geração como origem.
Repositório: na lista de repositórios disponíveis, selecione o repositório.
Branch ou Tag: especifique uma expressão regular com o valor da ramificação ou da etiqueta a corresponder. Para informações sobre a sintaxe de expressões regulares aceitável, consulte a sintaxe RE2.
Controlo de comentários: se selecionou Pedido de obtenção como Evento, escolha uma das seguintes opções para controlar se uma compilação é executada automaticamente pelo acionador:
Obrigatório, exceto para proprietários e colaboradores: quando um proprietário ou um colaborador do repositório cria ou atualiza um pedido de obtenção, as compilações são executadas automaticamente pelo acionador. Se um colaborador externo iniciar a ação, as compilações só são executadas depois de um proprietário ou um colaborador comentar
/gcbrun
no pedido de envio.Obrigatório: quando um pedido de obtenção é criado ou atualizado por qualquer colaborador, as compilações só são executadas depois de um proprietário ou um colaborador comentar
/gcbrun
no pedido de obtenção. As compilações são executadas sempre que é feita uma alteração a um pedido de obtenção.Não obrigatório: quando um pedido de obtenção é criado ou atualizado por qualquer colaborador, as compilações são executadas automaticamente por acionadores.
Configuração: selecione o ficheiro de configuração de compilação localizado no seu repositório remoto ou crie um ficheiro de configuração de compilação inline para usar na sua compilação.
- Tipo: selecione o tipo de configuração a usar para a sua compilação.
- Deteção automática: o Cloud Build deteta automaticamente o tipo de configuração se tiver um ficheiro
cloudbuild.yaml
ouDockerfile
no seu repositório. - Ficheiro de configuração do Cloud Build (YAML ou JSON): use um ficheiro de configuração de compilação para a sua configuração.
- Dockerfile: use um
Dockerfile
para a sua configuração. - Buildpacks: use buildpacks para a sua configuração.
- Deteção automática: o Cloud Build deteta automaticamente o tipo de configuração se tiver um ficheiro
Localização: especifique a localização da configuração.
- Repositório: se o ficheiro de configuração estiver localizado no seu repositório remoto, indique a localização do ficheiro de configuração de compilação ou o
Dockerfile
diretório e um nome para a imagem resultante. Se a sua configuração for umDockerfile
, pode fornecer opcionalmente um limite de tempo para a compilação. Depois de fornecer oDockerfile
e o nome da imagem, é apresentada uma pré-visualização do comandodocker build
que a sua compilação vai executar. - Inline: se selecionou Ficheiro de configuração do Cloud Build (YAML ou JSON) como opção de configuração, pode especificar a configuração de compilação inline. Clique em Abrir editor para escrever o ficheiro de configuração de compilação na Google Cloud consola com a sintaxe YAML ou JSON. Clique em Concluído para guardar a configuração de compilação.
- Repositório: se o ficheiro de configuração estiver localizado no seu repositório remoto, indique a localização do ficheiro de configuração de compilação ou o
- Tipo: selecione o tipo de configuração a usar para a sua compilação.
Variáveis de substituição (opcional): se selecionou o ficheiro de configuração do Cloud Build como opção de configuração de compilação, pode optar por definir variáveis de substituição específicas do acionador através deste campo. Por exemplo, suponhamos que está a criar vários acionadores em que cada acionador implementa a sua app num ambiente específico. Pode especificar que a sua app é implementada num ambiente no ficheiro de configuração de compilação e, em seguida, usar este campo para definir variáveis de substituição que especificam o ambiente para o qual este acionador deve ser implementado. Para obter informações sobre como especificar valores de substituição em ficheiros de configuração de compilação, consulte o artigo Substituir valores de variáveis.
Registos de compilação (opcional): selecione a caixa para enviar registos de compilação para o GitHub. Para saber como ver os registos de compilação, consulte o artigo Ver registos de compilação.
Conta de serviço: selecione a conta de serviço a usar quando invocar o acionador. Se a política da sua organização permitir a utilização da conta de serviço do Cloud Build antiga, pode deixar este campo em branco para usar a conta de serviço antiga. Caso contrário, tem de selecionar a conta de serviço específica a usar, mesmo que seja a conta de serviço predefinida do Compute Engine.
Clique em Criar para guardar o acionador de compilação.
Para criar acionadores do GitHub através de comandos gcloud
, consulte os gcloud
comandos para criar um acionador de compilação.
CLI gcloud
Para criar acionadores do GitHub com 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
Onde:
- TRIGGER_NAME é o nome do acionador.
- PROJECT_ID é o seu Google Cloud ID do projeto.
- REGION é a região do seu acionador.
- CONNECTION_NAME é o nome da sua associação do GitHub.
- GIT_REPOSITORY_LINK é o link para o seu repositório Git.
- BRANCH_PATTERN é o nome do ramo no seu repositório para invocar a compilação.
- TAG_PATTERN é o nome da etiqueta no seu repositório para invocar a compilação.
- BUILD_CONFIG_FILE é o caminho para o ficheiro de configuração de compilação.
- SERVICE-ACCOUNT é a conta de serviço a usar para operações de acionamento e compilação.
API
Para criar um acionador do GitHub com a API, use o seguinte modelo JSON:
{
"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
}
Onde:
- TRIGGER_NAME é um nome para o acionador.
- TRIGGER_DESCRIPTION é uma descrição do acionador.
- SERVICE_ACCOUNT é a conta de serviço a usar para operações de acionamento e compilação.
- 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 este campo tiver um valor deINCLUDE_BUILD_LOGS_SPECIFIED
, os registos de compilação são apresentados no seu repositório.
Introduza 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
Onde:
- PROJECT_NUMBER é o número do seu Google Cloud projeto.
- PROJECT_ID é o seu Google Cloud ID do projeto.
Crie e veja as suas alterações
Para criar usando acionadores do GitHub, tem de enviar e confirmar alterações para o repositório de origem associado ou configurar a compilação em pedidos de envio. Depois de confirmar as alterações, o Cloud Build compila o código.
Para ver as alterações de compilação no GitHub, aceda ao separador Checks no seu repositório.
Verá que o Cloud Build criou as suas alterações. Também vê outros detalhes de compilação, como o tempo necessário para compilar o código e o ID de compilação.
Para ver as alterações de compilação no Cloud Build, clique em Ver mais detalhes no Google Cloud Build. A página Detalhes da compilação na Google Cloud consola é aberta, onde pode ver informações de compilação, como o estado, os registos e os passos de compilação.
Diferentes tipos de acionadores baseados no GitHub
Se o seu código fonte estiver no GitHub, o Cloud Build oferece duas formas de executar compilações automaticamente. Esta secção explica os dois acionadores baseados no GitHub e compara as respetivas funcionalidades.
Acionadores antigos do GitHub: quando cria um acionador antigo do GitHub, o Cloud Build espelha o seu repositório do GitHub nos Cloud Source Repositories e usa o repositório espelhado para todas as suas operações. Pode criar e gerir acionadores do GitHub através da Google Cloud consola.
Acionadores do GitHub: este tipo de acionador usa a app GitHub do Cloud Build para configurar e autenticar no GitHub. Os acionadores do GitHub permitem-lhe iniciar automaticamente compilações em envios Git e pedidos de envio, bem como ver os resultados das compilações no GitHub e na Google Cloud consola. Pode criar e gerir acionadores do GitHub através da Google Cloud consola ou da API Cloud Build, conforme descrito nesta página.
Acionadores do GitHub Enterprise: este tipo de acionador permite invocar compilações em resposta a commits ou pedidos de envio numa instância do GitHub Enterprise. Pode criar repositórios a partir do GitHub Enterprise através da Google Cloud consola ou da API Cloud Build.
A tabela seguinte compara os acionadores do GitHub antigos, os acionadores do GitHub e os acionadores do GitHub Enterprise:
Funcionalidade | Acionadores antigos do GitHub | Acionadores do GitHub | Acionadores do GitHub Enterprise |
---|---|---|---|
Executar compilações em envios para o código-fonte | Sim | Sim | Sim |
Executar compilações em pedidos de envio | Não | Sim | Sim |
Crie um acionador através da Google Cloud consola | Sim | Sim | Sim |
Crie um acionador com a API Cloud Build | Não | Sim | Sim |
Crie um acionador através da app GitHub do Cloud Build | Não | Sim | Sim |
Veja o estado da compilação na Google Cloud consola | Sim | Sim | Sim |
Veja o estado da compilação no GitHub | Não | Sim | Sim |
Partilha de dados
Os dados enviados para o GitHub a partir do Cloud Build ajudam a identificar acionadores por nome e a ver os resultados da compilação no GitHub.
Atualmente, os seguintes dados são partilhados entre o Cloud Build e o GitHub:
- ID do projeto na nuvem
- Nome do acionador
- Registos de compilação
Se criou acionadores antes de agosto de 2020, a partilha de dados pode não estar ativada para o seu projeto. Pode ativar a partilha de dados para todos os acionadores do GitHub no seu projeto clicando em Ativar no separador Partilha de dados do Cloud Build.
Se tiver verificações de estado obrigatórias ativadas para um repositório do GitHub, a ativação da partilha de dados pode interromper temporariamente as verificações de estado. Pode ajustar as configurações de verificação do estado para procurar o nome do acionador da seguinte forma:
- Desativar quaisquer verificações obrigatórias específicas do Cloud Build no repositório do GitHub
- Garantir que a partilha de dados está ativada no Cloud Build
- Executar uma nova compilação no Cloud Build que publica estados no seu repositório
- Voltar a ativar as verificações de estado necessárias e selecionar o nome do acionador
O que se segue?
- Saiba como criar e gerir acionadores de compilação.
- Saiba como fazer implementações azul-verde no Compute Engine.