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.
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.
- Se o ficheiro de configuração de compilação associado ao acionador especificar um pool privado, o Cloud Build usa o pool privado para executar a compilação. Neste caso, a região especificada no acionador tem de corresponder à região onde criou o seu conjunto privado.
- Se o ficheiro de configuração de compilação associado ao acionador não especificar um conjunto privado, o Cloud Build usa o conjunto predefinido para executar a compilação na mesma região que o acionador.
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 as informações sobre o seu repositório do GitHub:
Serviço de repositório: selecione Cloud Build.
Geração de repositórios: selecione Developer Connect 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 obter 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 o seu 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. Quando tiver indicado oDockerfile
e o nome da imagem, é apresentada uma pré-visualização do comandodocker build
que a 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 ID do seu Google Cloud 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 modelo JSON seguinte:
{ "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 ID do seu Google Cloud 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.
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.