Administra las dependencias de compilación

En esta página, se explica cómo puedes especificar dependencias de compilación. Cloud Build te permite administrar las dependencias del código fuente por separado del proceso de compilación.

En el archivo de configuración de compilación, puedes enumerar uno o más repositorios para clonar tu compilación y el orden en el que se deben recuperar. Especificar dependencias de esta manera separa la recuperación de dependencias del proceso de compilación en sí.

Si no incluyes ninguna dependencia en tu archivo de configuración de compilación, Cloud Build clonará el repositorio de código fuente que contiene tu archivo de configuración de compilación (para las compilaciones activadas) o el repositorio que contiene tu código fuente (para las compilaciones que invocas desde la línea de comandos). Si incluyes dependencias en tu archivo de configuración de compilación, Cloud Build clonará solo los repositorios que se especifican en el campo dependencies.

Las dependencias se clonan en el orden en que las especificas. Además, la recuperación de dependencias se produce antes de que se ejecute cualquier lógica especificada por el usuario. Por lo tanto, se confía en la recuperación de dependencias.

Las dependencias se muestran en la pestaña Build dependencies de la página Build details.

Antes de comenzar

En las instrucciones de esta página, se supone que tienes al menos uno de los siguientes tipos de repositorios:

Para garantizar que tenga los permisos necesarios para agregar un repositorio de Developer Connect como dependencia, pídele a tu administrador que le otorgue a el rol de IAM de Developer Connect Read Token Accessor (developerconnect.readTokenAccessor) en tu cuenta de servicio. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Es posible que tu administrador también pueda otorgar los permisos necesarios a través de roles personalizados o de otros roles predefinidos.

Especifica las dependencias

Para especificar dependencias, agrega un campo dependencies a tu archivo de configuración de compilación. dependencies es una propiedad de nivel superior en la configuración de compilación, pero puedes colocarla en cualquier lugar del archivo.

Especifica dependencias de GitHub

Para especificar una dependencia en un repositorio de GitHub, agrega la siguiente configuración de dependencies a tu archivo de configuración de compilación:

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",
         },
     },
 }

Reemplaza los siguientes valores:

  • URL: Es la URL HTTPS del repositorio que se recuperará. Se requiere, a menos que tu repositorio esté conectado a Cloud Build con Developer Connect.

  • DC_RESOURCE_PATH: Es la ruta de acceso al recurso Google Cloud de un repositorio de Developer Connect. Por ejemplo, projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. Se requiere si tu repositorio está conectado a Cloud Build con Developer Connect.

    Si tu repositorio está conectado a través de Developer Connect, necesitas lo siguiente:

  • REVISION: Obligatorio. Es la versión, el hash de confirmación, la etiqueta o el nombre de la rama que se recuperará del repositorio.

  • recurseSubmodules: "true|false": Indica si se deben recuperar submódulos.

  • DEPTH: Opcional, indica qué tan atrás en el historial del repositorio se debe recuperar. Si no se especifica, se recupera la confirmación más reciente.

    • 1: Es la confirmación más reciente.
    • 2: Los últimos dos commits
    • 3: Los últimos tres commits
    • -1: Todos los cambios
  • DEST_PATH: Obligatorio. Es la ruta de acceso al directorio en el que se clona el repositorio. Por ejemplo, my/repo

    Cuando configuras dest_path, el repositorio se recupera en /workspace/<dest_path>. El valor de dest_path debe ser una ruta de acceso relativa al directorio de trabajo de la compilación.

Cómo especificar un artefacto genérico como dependencia

Para especificar un artefacto genérico como dependencia, agrega la siguiente configuración de dependencies a tu archivo de configuración de compilación:

YAML

dependencies:
- genericArtifact:
    resource: RESOURCE
    destPath: PATH

JSON

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

Aquí:

  • RESOURCE es la dirección completa del artefacto genérico dentro de tu repositorio genérico de Artifact Registry, con el siguiente formato:

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

    Te recomendamos que incluyas la huella digital de tu artefacto en la dirección del recurso para que Cloud Build pueda verificar que la referencia del artefacto sea inmutable. Una versión del paquete con una huella digital agregada tiene el siguiente formato:

    VERSION@dirsum_sha256=HASH_VALUE

    Para encontrar la huella digital de un artefacto en un repositorio de Artifact Registry, consulta Cómo recuperar la huella digital de la versión de un paquete en tu repositorio.

  • PATH es la dirección de la carpeta en la que Cloud Build descarga el paquete de tu repositorio. Si la carpeta aún no existe, Cloud Build la creará automáticamente.

¿Qué sigue?