Como automatizar versões com o Cloud Build

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.

Antes de começar

Mais informações

Além dos pré-requisitos, as seguintes informações podem ser úteis:

  • 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 papel cloudbuild.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 esta página na documentação do Cloud Build.

Criar um acionador de versão

Para criar um novo acionador de versão, siga estas etapas:

  1. No Console do Google Cloud, abra a página dos Acionadores de versão do Cloud Build.

    Abrir a página “Gatilhos de compilação”

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

    A página Acionadores é aberta.

  3. Clique em Criar acionador.

    A página Criar acionador é aberta.

  4. Na lista suspensa Repositório, selecione um deles na lista de repositórios disponíveis.

  5. Preencha as seguintes opções:

    • Opcional. No campo Descrição, insira um nome para o acionador.
    • Opcional. Na lista Tipo de acionador, defina um acionador para iniciar uma versão em confirmações feitas para uma determinada ramificação ou em confirmações que tenham uma tag específica. Em qualquer um dos casos, é possível especificar uma expressão regular correspondente ao valor da ramificação ou da tag.

    • Na lista Configuração da versão, selecione um tipo de arquivo de configuração a ser usado para cada construção iniciada pelo acionador. É possível selecionar e especificar um Dockerfile ou selecionar um arquivo de configuração do Cloud Source Repositories (localizado no repositório remoto). Se necessário, revise as informações desta página sobre a criação com um Dockerfile ou um arquivo de configuração da versão.

  6. Clique em Criar acionador.

Como usar 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.

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.

Testar um acionador de versão

Para testar manualmente um acionador de versão, clique em Executar o acionador na entrada do seu acionador na lista.

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 acionador.

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