Neste tópico, você aprenderá como automatizar versões usando o Cloud Build e o Cloud Source Repositories.
É possível configurar o Cloud Build para criar automaticamente uma nova imagem sempre que um usuário envia uma alteração aos arquivos armazenados no Cloud Source Repositories. Eventos que iniciam versões automáticas são chamados de acionadores de versão. Esses acionadores podem ajudar a garantir que as imagens do contêiner sejam mantidas atualizadas. Também é possível usá-los para criar e testar ramificações de recursos.
Os gatilhos de compilação podem executar um build com base em um Dockerfile ou um arquivo de configuração de versão.
usando um Dockerfile;
Para usar um Dockerfile na sua configuração da versão, especifique o diretório do Dockerfile e forneça um nome para a imagem resultante. Para detalhes sobre como criar Dockerfiles, consulte a documentação do Docker.
Depois de fornecer o Dockerfile e o nome da imagem, você verá uma visualização do comando docker build
que sua versão executa e um resumo da configuração do acionador.
Como usar um arquivo de configuração de versão
Informe o local de um arquivo de configuração da versão para usá-lo na sua configuração da versão.
Depois de definir o local, você verá um resumo do acionador.
Antes de começar
Ative a API Cloud Build.
Verifique se você tem o código-fonte no Cloud Source Repositories.
Verifique se você tem um Dockerfile ou um arquivo de configuração do build.
Se usar uma conta de serviço diferente da conta de serviço padrão do Cloud Build, consulte a página do Cloud Build em Como configurar contas de serviço especificadas pelo usuário.
Mais informações
Os acionadores de versão usam clones superficiais de um repositório. Com clones rasos, somente a confirmação única que acionou uma versão automática é verificada no espaço de trabalho. Para detalhes sobre como incluir mais históricos de repositórios, consulte Como desfazer clones superficiais.
Se você usar outro provedor Git hospedado, como no GitHub ou no Bitbucket, e ainda precisar espelhar o repositório no Cloud Source Repositories, precisará ter a permissão
cloudbuilds.builds.create
do projeto do Google Cloud em que está trabalhando. Essa permissão geralmente é concedida pelo papelcloudbuild.builds.editor
.Na primeira vez que você configurar um gatilho de compilação com um repositório externo, será preciso definir a autorização do repositório. Para mais informações, consulte Como adicionar um repositório como remoto.
Depois de configurar seu repositório externo, o Cloud Source Repositories cria um espelho de seu repositório.
Para informações sobre cotas e limites do Cloud Build, consulte Cotas e limites na documentação do Cloud Build.
Criar um acionador de versão
Console
Abra a página Gatilhos no console do Google Cloud.
Selecione o projeto no menu suspenso do seletor de projetos na parte superior da página.
Clique em Abrir.
Clique em Criar gatilho.
Preencha as configurações de gatilho a seguir:
Nome: insira um nome para o 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.
Origem: selecione o repositório e a ramificação ou tag correspondente para assistir aos eventos.
- Repositório: na lista de repositórios disponíveis, selecione o repositório que você quer. Para conectar um novo repositório, consulte Como se conectar a repositórios de origem.
Quando sua versão é executada, o conteúdo do repositório é copiado para
/workspace
, o diretório de trabalho padrão usado pelo Cloud Build. Saiba mais sobre diretórios de trabalho na página de visão geral da configuração da versão.- Ramificação ou Tag: especifique uma expressão regular correspondente ao valor da ramificação ou da tag. Não é possível usar barras (
/
) nas tags. Para mais informações sobre a sintaxe aceitável da expressão regular, consulte Sintaxe de RE2 (em inglês).
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.
- Tipo: selecione o tipo de configuração a ser usado para seu build.
- 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, o diretório
Dockerfile
ou o diretório buildpacks. Se o tipo de configuração do build for umDockerfile
ou um buildpack, você precisará fornecer um nome para a imagem resultante e, opcionalmente, um tempo limite para o seu build. Depois de fornecer o nome da imagemDockerfile
ou do buildpack, você verá uma visualização do comandodocker build
oupack
que seu build executará. - Variáveis de ambiente de pacote (opcional): se você
tiver selecionado
buildpacks
como tipo de configuração, clique em Adicionar variável de ambiente de pacote para especificar os valores e variáveis de ambiente do buildpack. Para saber mais sobre as variáveis de ambiente de buildpack, consulte Variáveis de ambiente. 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 Console do Google Cloud usando a sintaxe YAML ou JSON. Clique em Concluído para salvar a configuração do build.
- 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, o diretório
- Tipo: selecione o tipo de configuração a ser usado para seu build.
Conta de serviço: selecione a conta de serviço a ser usada ao invocar seu gatilho. Se você não selecionar uma conta de serviço, a conta de serviço padrão do Cloud Build será usada.
Clique em Criar para salvar o gatilho de compilação.
gcloud
Execute este 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
Em que:
- REPO_NAME é o nome do repositório;
- BRANCH_PATTERN é o nome da ramificação no seu repositório para invocar a criação.
- 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 (visualização) é o e-mail associado à conta de serviço. Se você não incluir essa sinalização, a conta de serviço padrão do Cloud Build será usada.
- [Opcional]
--require-approval
é a sinalização a ser incluída para configurar o gatilho para exigir aprovação.
Para uma lista completa de sinalizações, consulte a referência de gcloud
sobre como criar gatilhos para o Cloud Source Repositories.
Depois de executar o comando gcloud
para criar um gatilho usando
o Cloud Source Repositories, você verá uma resposta semelhante à
seguinte:
NAME CREATE_TIME STATUS
trigger-001 2019-10-30T20:45:03+00:00
Ver gatilhos de compilação
Para visualizar os gatilhos no console do Google Cloud, abra a página Gatilhos do Cloud Build.
Para ver os gatilhos de um determinado projeto no Cloud Source Repositories, clique em Configurações
no canto superior direito e, depois, em Acionadores do Cloud Build.Ignorar um acionador de versão
Em alguns casos, talvez você queira alterar o código-fonte, mas não queira acionar uma versão (por exemplo, ao atualizar os arquivos de configuração ou documentação).
Nesses casos, inclua [skip ci]
ou [ci skip]
na mensagem de confirmação, e uma versão não será acionada.
Exemplo:
Author: A User <auser@example.com>
Date: Tue Apr 3 12:03:35 2018 -0700
Fixed customer affecting issue. [skip ci]
Para executar uma versão desse commit mais tarde, use o botão Executar gatilho.
Como desfazer clones superficiais
Para criar sua origem em um repositório Git, o Cloud Source Repositories realiza um clone superficial do repositório. Quando o Cloud Source Repositories executa um clone superficial, ele verifica na área de trabalho apenas a confirmação única que acionou a versão e, em seguida, cria a partir dessa fonte. O Cloud Source Repositories não verifica outras ramificações ou histórico. Isso é feito para aumentar a eficiência. As versões não são atrasadas, enquanto o Cloud Source Repositories busca em todo o repositório e histórico apenas para criar a partir de uma única confirmação.
Para incluir mais histórico do repositório na versão, adicione uma etapa de criação no arquivo de configuração da versão para que o clone seja não superficial. Por exemplo:
steps:
- name: gcr.io/cloud-builders/git
args: ['fetch', '--unshallow']
...
Para mais informações sobre git fetch
, consulte a referência de git (em inglês).
Para ver instruções sobre como gravar um arquivo de configuração da versão, consulte Visão geral da configuração da versão.
A seguir
- Saiba como iniciar builds manualmente no Cloud Build.
- Saiba mais sobre como criar, testar e implantar artefatos.