Gerenciar dependências do build

Nesta página, explicamos como especificar dependências de build. O Cloud Build permite gerenciar dependências de código-fonte separadamente do processo de build.

No arquivo de configuração de build, é possível listar um ou mais repositórios Git para clonar para o build e a ordem em que eles serão buscados. Especificar dependências dessa forma separa a busca de dependências do processo de build.

Se você não incluir dependências no arquivo de configuração do build, o Cloud Build vai clonar o repositório de código-fonte que contém o arquivo de configuração do build (para builds acionados) ou o repositório que contém o código-fonte (para builds invocados na linha de comando). Se você incluir dependências no arquivo de configuração de build, o Cloud Build não vai clonar nenhum repositório que não esteja especificado no campo dependencies.

Qualquer repositório de código-fonte especificado no campo dependencies precisa estar conectado ao Cloud Build usando o Developer Connect ou ser um repositório público.

As dependências são clonadas na ordem em que você as especifica nessa configuração. Além disso, a busca de dependências ocorre antes da execução de qualquer lógica especificada pelo usuário. Assim, a busca de dependências é confiável.

As dependências são mostradas na guia Dependências do build da página Detalhes do build.

Antes de começar

As instruções nesta página pressupõem que você tenha um ou mais repositórios Git públicos ou vinculados usando o Developer Connect.

Para receber as permissões necessárias para adicionar um repositório do Developer Connect como uma dependência, peça ao administrador para conceder a você o papel do IAM de Leitor de token do Developer Connect (developerconnect.readTokenAccessor) na sua conta de serviço. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Especificar as dependências

Para especificar dependências, adicione uma seção dependencies ao arquivo de configuração de build. dependencies é uma propriedade de nível superior na configuração de build, mas pode ser colocada em qualquer lugar do arquivo.

Esta é a sintaxe da seção dependencies:

YAML

 dependencies:
 - gitSource:
     repository:
       url: 'URL'
       developerConnect: 'RESOURCE_PATH'
     revision: 'REVISION'
     recurseSubmodules: 'true|false'
     depth: DEPTH'
     destPath: 'DEST_PATH'

JSON

 {
     "dependencies": {
         "gitSource": {
             "repository": {
                 "url": "URL"
                 "developerConnect": "RESOURCE_PATH"
             },
             "revision": "REVISION",
             "recurseSubmodules": true|false,
             "depth": "DEPTH",
             "destPath": "DEST_PATH",
         },
     },
 }

Substitua os seguintes valores:

  • URL: opcional. O URL HTTPS do repositório a ser buscado. É necessário especificar um URL ou um caminho de recurso do Developer Connect.

  • RESOURCE_PATH: opcional. O caminho do recurso Google Cloud para esse repositório do Developer Connect. Por exemplo, projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. É necessário especificar um URL ou um caminho de recurso do Developer Connect. Especifique esse campo se o repositório a ser buscado estiver conectado ao Cloud Build usando o Developer Connect.

  • REVISION: obrigatório. A versão, o hash de commit, a tag ou o nome da ramificação a ser buscado no repositório.

  • recurseSubmodules: "true|false": se os submódulos precisam ser buscados.

  • DEPTH: opcional, a profundidade do histórico do repositório a ser buscado. Se não for especificado, o commit mais recente será buscado.

    • 1: o commit mais recente
    • 2: os dois últimos commits
    • 3: os três últimos commits
    • -1: todos os commits
  • DEST_PATH: obrigatório. O caminho para o diretório em que o repositório é clonado. Por exemplo, my/repo.

    Quando você define o dest_path, o repositório é buscado em /workspace/<dest_path>. O valor dest_path precisa ser um caminho relativo ao diretório de trabalho da build.

Especificar um repositório do Developer Connect como uma dependência

  • Se você especificar um repositório do Developer Connect como uma dependência, será necessário conceder o papel Developer Connect Read Token Accessor à conta de serviço do Cloud Build. Para mais informações, consulte Conceder acesso do Cloud Build a um repositório do Developer Connect.

  • O build precisa estar na mesma região da conexão do Developer Connect.

A seguir