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 do build, é possível listar um ou mais repositórios 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 em si.

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 clonará apenas os repositórios especificados no campo dependencies.

As dependências são clonadas na ordem em que você as especifica. 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 de build da página Detalhes do build.

Antes de começar

As instruções nesta página pressupõem que você tenha pelo menos um dos seguintes tipos de repositório:

Para garantir que tenha as permissões necessárias para adicionar um repositório do Developer Connect como uma dependência, peça ao administrador para conceder o papel do IAM de Acessador de token de leitura do Developer Connect (developerconnect.readTokenAccessor) para 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.

O administrador também pode conceder as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.

Especificar as dependências

Para especificar dependências, adicione um campo 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.

Especificar dependências do GitHub

Para especificar uma dependência em um repositório do GitHub, adicione a seguinte configuração dependencies ao arquivo de configuração de build:

YAML

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

JSON

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

Substitua os seguintes valores:

  • URL: o URL HTTPS do repositório a ser buscado. Obrigatório, a menos que o repositório esteja conectado ao Cloud Build usando o Developer Connect.

  • DC_RESOURCE_PATH: o caminho do recurso Google Cloud para um repositório do Developer Connect. Por exemplo, projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. Obrigatório se o repositório estiver conectado ao Cloud Build usando o Developer Connect.

    Se o repositório estiver conectado usando o Developer Connect, você vai precisar do seguinte:

  • 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 de dest_path precisa ser um caminho relativo ao diretório de trabalho da build.

Especificar um artefato genérico como uma dependência

Para especificar um artefato genérico como uma dependência, adicione a seguinte configuração dependencies ao arquivo de configuração da criação:

YAML

dependencies:
- genericArtifact:
    resource: RESOURCE
    destPath: PATH

JSON

{
  "dependencies": [
    {
      "genericArtifact": {
        "resource": "RESOURCE",
        "destPath": "PATH"
      }
    }
  ]
}

Em que:

  • RESOURCE é o endereço completo do artefato genérico no repositório genérico do Artifact Registry, formatado da seguinte maneira:

    projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/packages/PACKAGE/versions/VERSION

    Recomendamos incluir a impressão digital do artefato no endereço do recurso para que o Cloud Build possa verificar se a referência do artefato é imutável. Uma versão de pacote com uma impressão digital anexada é formatada da seguinte maneira:

    VERSION@dirsum_sha256=HASH_VALUE

    Para encontrar a impressão digital de um artefato em um repositório do Artifact Registry, consulte Recuperar a impressão digital de uma versão do pacote no repositório.

  • PATH é o endereço da pasta em que o Cloud Build faz o download do pacote do seu repositório. Se a pasta ainda não existir, o Cloud Build a criará automaticamente.

A seguir