Como usar builders de contribuições da comunidade e builders personalizados

Nesta página, explicamos como usar builders de contribuições da comunidade e builders personalizados no Cloud Build. A comunidade de desenvolvedores do Cloud Build fornece builders de código aberto que podem ser usados para executar tarefas. Se a tarefa que você quer executar requer recursos que não são fornecidos por uma imagem existente, você pode criar sua própria imagem personalizada e usá-la em uma etapa de versão. Para saber mais sobre os diferentes tipos de builders, consulte Cloud Builders.

Se você não estiver familiarizado com o Cloud Build, leia as guias de início rápido e a visão geral da configuração da compilação primeiro.

Como usar builders de contribuições da comunidade

Imagens pré-criadas não estão disponíveis para builders de contribuições da comunidade. Para usar esses builders em um arquivo de configuração do Cloud Build, primeiro é preciso criar a imagem e enviá-la para o Artifact Registry no projeto.

Para usar um builder de contribuições da comunidade:

  1. Crie e envie o builder:

    1. Navegue até o diretório raiz do projeto.

    2. Clone o repositório cloud-builders-community:

      git clone https://github.com/GoogleCloudPlatform/cloud-builders-community.git 
    3. Navegue até a imagem do builder que você quer usar, em que builder-name é o diretório que contém o builder:

      cd cloud-builders-community/builder-name 
    4. Envie o builder para seu projeto:

      gcloud builds submit . 
    5. Volte para o diretório raiz do projeto:

      cd ../.. 
    6. Remova o repositório do diretório raiz:

      rm -rf cloud-builders-community/ 
  2. No arquivo de configuração do Cloud Build, use o builder em uma etapa de versão:

    YAML

    steps: - name: 'gcr.io/project-id/builder-name'   args: ['arg1', 'arg2', ...] ... 

    JSON

    {   "steps": [   {     "name": "gcr.io/project-id/builder-name",     "args": [       "arg1",       "arg2",       ...     ]     ...   }   ] } 
  3. Use o arquivo de configuração da versão para iniciar a criar manualmente ou criar usando gatilhos.

Para ver exemplos sobre o uso de builders de contribuições da comunidade, consulte Implantar no Firebase e Criar imagens de VM usando o Packer.

Como criar um builder personalizado

Se a tarefa que você quer executar requer recursos que não são fornecidos por uma imagem pública, um builder compatível ou um builder de contribuições da comunidade, é possível criar sua própria imagem e usá-la em uma etapa de build.

Alguns exemplos de quando é possível usar uma imagem de builder personalizado são:

  • Fazer o download de código-fonte ou pacotes de locais externos.
  • Usar uma cadeia de ferramentas externa.
  • Armazenar as bibliotecas necessárias em cache.
  • Pré-criar o código-fonte (com o Cloud Build responsável apenas por empacotar a versão em uma imagem).

Como qualquer outro, um builder personalizado é executado com o código-fonte ativado em /workspace e com um diretório de trabalho em /workspace. Todos os arquivos deixados em /workspace por uma determinada etapa de versão estão disponíveis para outras etapas de versão.

O builder personalizado pode enviar ou extrair de um repositório no Artifact Registry (hospedado em gcr.io/$PROJECT-NAME/) para que sua conta de serviço de build tem acesso.

As etapas a seguir mostram como criar e usar um builder personalizado com um exemplo de Dockerfile:

  1. Crie uma imagem de builder personalizada:

    1. Crie o Dockerfile para o builder personalizado. O código a seguir mostra um exemplo de Dockerfile:

        FROM alpine   RUN apk add curl   CMD curl https://httpbin.org/ip -s > myip.txt; echo "*** My IP is: $(cat myip.txt)" 
    2. Crie e envie o builder personalizado para o Artifact Registry no seu projeto, substituindo os valores de project-id e image-name:

        gcloud builds submit --tag gcr.io/project-id/image-name 
  2. Use a imagem de builder personalizada no Cloud Build especificando o builder no campo name de uma etapa de build:

    YAML

        steps:     - name: 'gcr.io/project-id/image-name'       id: Determine IP of this build worker 

    JSON

        {       "steps": [       {         "name": "gcr.io/project-id/image-name",         "id": "Determine IP of this build worker"       }       ]     } 
  3. Use o arquivo de configuração da versão para iniciar a criar manualmente ou criar usando gatilhos.

A seguir