Gerenciar dependências do build

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

No arquivo de configuração do 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 maneira separa a busca de dependências do próprio processo de build.

Se você não incluir dependências no arquivo de configuração do build, o Cloud Build clona o repositório do 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 acionados na linha de comando). Se você incluir dependências no arquivo de configuração do build, o Cloud Build não clonará repositórios que não forem especificados 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 são especificadas nesta configuração. Além disso, o download de dependências ocorre antes que qualquer lógica especificada pelo usuário seja executada. Portanto, o fetching de dependências é confiável.

Antes de começar

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

Funções exigidas

Se algum repositório que você está adicionando como dependência for um repositório do Developer Connect, sua conta de serviço precisará do papel de Acessador de token de leitura do Developer Connect:

Além de qualquer outro papel do Cloud Build que você precisar.

Especificar as dependências

Para especificar dependências, adicione uma estrofe dependencies ao arquivo de configuração do build. dependencies é uma propriedade de nível superior na configuração de build, mas você pode colocá-la em qualquer lugar no arquivo.

Confira a sintaxe da estrofe 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 este 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 confirmação, a tag ou o nome da ramificação a ser buscado no repositório.

  • recurseSubmodules: 'true|false': se é necessário buscar submódulos.

  • 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: a confirmação mais recente
    • 2: as duas últimas confirmações
    • 3: os três últimos commits
    • -1: todas as confirmações
  • DEST_PATH: obrigatório. O caminho para o diretório em que o repositório será 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 e 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