Este tópico descreve como automatizar compilações através do Cloud Build e dos Cloud Source Repositories.
Pode configurar o Cloud Build para compilar automaticamente uma nova imagem sempre que um utilizador enviar uma alteração para ficheiros armazenados nos Cloud Source Repositories. Os eventos que iniciam compilações automáticas são denominados acionadores de compilação. Estes acionadores podem ajudar a garantir que as imagens de contentores são mantidas atualizadas. Também pode usá-los para criar e testar ramificações de funcionalidades.
Os acionadores de compilação podem executar uma compilação com base num Dockerfile ou num ficheiro de configuração de compilação.
Usar um ficheiro Dockerfile
Para usar um Dockerfile para a configuração de compilação, tem de especificar o diretório do Dockerfile e fornecer um nome para a imagem resultante. Para ver detalhes sobre a criação de Dockerfiles, consulte a documentação do Docker.
Depois de fornecer o Dockerfile e o nome da imagem, é apresentada uma pré-visualização do comando docker build
que a sua compilação executa e um resumo da configuração do acionador.
Usar um ficheiro de configuração de compilação
Para usar um ficheiro de configuração de compilação para a sua configuração de compilação, tem de indicar a localização de um ficheiro de configuração de compilação.
Depois de definir a localização, é apresentado um resumo do acionador.
Antes de começar
Ative a API Cloud Build.
Certifique-se de que tem código-fonte nos Cloud Source Repositories.
Certifique-se de que tem um Dockerfile ou um ficheiro de configuração de compilação.
Se usar uma conta de serviço diferente da conta de serviço predefinida do Cloud Build, consulte a página do Cloud Build sobre a configuração de contas de serviço especificadas pelo utilizador.
Informações adicionais
Os acionadores de compilação usam clones superficiais de um repositório. Com clones superficiais, apenas a confirmação única que acionou uma compilação automática é extraída no espaço de trabalho. Para mais informações e para saber como incluir mais do histórico dos seus repositórios, consulte o artigo Remover a profundidade dos clones.
Se usar outro fornecedor de Git alojado, como o GitHub ou o Bitbucket, e ainda precisar de espelhar o repositório nos Cloud Source Repositories, tem de ter a autorização
cloudbuilds.builds.create
para o Google Cloud projeto com o qual está a trabalhar. Esta autorização é normalmente concedida através da funçãocloudbuild.builds.editor
.Quando configura um acionador de compilação com um repositório externo pela primeira vez, tem de configurar a autorização com esse repositório. Para mais informações, consulte Adicionar um repositório como remoto.
Depois de configurar o repositório externo, o Cloud Source Repositories cria um espelho do seu repositório.
Para ver informações sobre as quotas e os limites do Cloud Build, consulte o artigo Quotas e limites na documentação do Cloud Build.
Crie um acionador de versão
Consola
Abra a página Acionadores na Google Cloud consola.
Selecione o seu projeto no menu pendente do seletor de projetos na parte superior da página.
Clique em Abrir.
Clique em Criar acionador.
Introduza as seguintes definições do acionador:
Nome: introduza um nome para 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.
Origem: selecione o repositório e o ramo ou a etiqueta correspondente para monitorizar eventos.
- Repositório: na lista de repositórios disponíveis, selecione o repositório desejado. Para associar um novo repositório, consulte o artigo Estabelecer ligação a repositórios de origem.
Quando a compilação é executada, o conteúdo do repositório é copiado para
/workspace
, o diretório de trabalho predefinido usado pelo Cloud Build. Saiba mais sobre os diretórios de trabalho na página Vista geral da configuração de compilação.- Branch ou Tag: especifique uma expressão regular com o valor da ramificação ou da etiqueta a corresponder. Não é possível usar barras (
/
) em etiquetas. Para mais informações sobre a sintaxe de expressões regulares aceitável, consulte a sintaxe RE2.
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.
- 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.
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, do
Dockerfile
diretório ou do diretório de pacotes de compilação. Se o seu tipo de configuração de compilação forDockerfile
ou um buildpack, tem de fornecer um nome para a imagem resultante e, opcionalmente, um limite de tempo para a compilação. Quando tiver indicado o nome da imagemDockerfile
ou do buildpack, é apresentada uma pré-visualização do comandodocker build
oupack
que a sua compilação vai executar. - Variáveis de ambiente do buildpack (opcional): se selecionou
buildpacks
como o tipo de configuração, clique em Adicionar variável de ambiente do pacote para especificar as variáveis de ambiente e os valores do buildpack. Para saber mais acerca das variáveis de ambiente do buildpack, consulte o artigo Variáveis de ambiente. 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, do
- Tipo: selecione o tipo de configuração a usar para a sua compilação.
Conta de serviço: selecione a conta de serviço a usar quando invocar o acionador. Se não selecionar uma conta de serviço, é usada a conta de serviço do Cloud Build predefinida.
Clique em Criar para guardar o acionador de compilação.
gcloud
Execute o seguinte comando:
gcloud beta builds triggers create cloud-source-repositories \
--repo=REPO_NAME \
--branch-pattern=BRANCH_PATTERN \ # or --tag-pattern=TAG_PATTERN
--build-config=BUILD_CONFIG_FILE \
--service-account=SERVICE_ACCOUNT \
--require-approval
Onde:
- REPO_NAME é o nome do seu repositório.
- 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 (preview) é o email associado à sua conta de serviço. Se não incluir esta flag, é usada a conta de serviço do Cloud Build predefinida.
- [Opcional]
--require-approval
é a flag a incluir para configurar o acionador de modo a exigir aprovação.
Para ver uma lista completa de flags, consulte a referência gcloud
sobre como criar acionadores
para Cloud Source Repositories.
Depois de executar o comando gcloud
para criar um acionador através do Cloud Source Repositories, deve ver um resultado semelhante ao seguinte:
NAME CREATE_TIME STATUS
trigger-001 2019-10-30T20:45:03+00:00
Veja acionadores de versão
Para ver os acionadores na Google Cloud consola, abra a página Acionadores do Cloud Build.
Para ver os acionadores de um determinado projeto no Cloud Source Repositories, clique em Definições
na parte superior direita e, de seguida, clique em Acionadores do Cloud Build.Ignore um acionador de compilação
Em alguns casos, pode querer alterar o código-fonte, mas não quer acionar uma compilação, por exemplo, quando atualiza a documentação ou os ficheiros de configuração.
Nesses casos, pode incluir [skip ci]
ou [ci skip]
na mensagem de confirmação e não é acionada uma compilação.
Por exemplo:
Author: A User <auser@example.com>
Date: Tue Apr 3 12:03:35 2018 -0700
Fixed customer affecting issue. [skip ci]
Se quiser executar uma compilação nesse commit mais tarde, use o botão Executar acionador.
Anular a profundidade dos clones
Para compilar a sua origem num repositório Git, o Cloud Source Repositories executa uma clonagem superficial do repositório. Quando o Cloud Source Repositories executa um clone superficial, extrai do espaço de trabalho apenas a confirmação única que acionou a compilação e, em seguida, compila a partir dessa origem. O Cloud Source Repositories não extrai outros ramos nem histórico. Isto é feito para aumentar a eficiência. As compilações não são atrasadas enquanto os repositórios de origem do Google Cloud buscam todo o repositório e histórico apenas para compilar a partir de uma única confirmação.
Para incluir mais do histórico do seu repositório na compilação, adicione um passo de compilação no ficheiro de configuração de compilação para "desfazer" a clonagem. Por exemplo:
steps:
- name: gcr.io/cloud-builders/git
args: ['fetch', '--unshallow']
...
Para mais informações sobre o git fetch
, consulte a
referência do Git.
Para ver instruções sobre como escrever um ficheiro de configuração de compilação, consulte o artigo
Vista geral da configuração de compilação.
O que se segue?
- Saiba como iniciar compilações manualmente no Cloud Build.
- Saiba mais sobre como criar, testar e implementar artefactos.