En esta página, se explica cómo puedes especificar las dependencias de compilación. Cloud Build te permite administrar las dependencias de 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 para tu compilación y el orden en el que se deben recuperar. Si especificas las dependencias de esta manera, se separa la recuperación de dependencias del proceso de compilación en sí.
Si no incluyes ninguna dependencia en el archivo de configuración de compilación, Cloud Build clona el repositorio de código fuente que contiene el archivo de configuración de compilación (para compilaciones activadas) o el repositorio que contiene tu código fuente (para compilaciones que invocas desde la línea de comandos). Si incluyes dependencias en el archivo de configuración de compilación, Cloud Build clona 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, la recuperación de dependencias es confiable.
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 dos tipos de repositorios:
Un repositorio de Git que es un repositorio público o vinculado a Cloud Build con Developer Connect.
Para asegurarte de que tenga los permisos necesarios para agregar un repositorio de Developer Connect como dependencia, pídele a tu administrador que le otorgue el rol de IAM de Developer Connect Read Token Accessor (developerconnect.readTokenAccessor) a 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 al 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'
fetchTags: 'true|false'
depth: 'DEPTH'
destPath: 'DEST_PATH'
JSON
{
"dependencies": {
"gitSource": {
"repository": {
"url": "URL"
"developerConnect": "DC_RESOURCE_PATH"
},
"revision": "REVISION",
"recurseSubmodules": true|false,
"fetchTags": true|false,
"depth": "DEPTH",
"destPath": "DEST_PATH",
},
},
}
Reemplaza los siguientes valores:
URL: La URL HTTPS del repositorio que se recuperará. Es obligatorio, a menos que tu repositorio esté conectado a Cloud Build con Developer Connect.
DC_RESOURCE_PATH: Es la ruta de acceso al Google Cloud recurso de un repositorio de Developer Connect. Por ejemplo,
projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. Es obligatorio si tu repositorio está conectado a Cloud Build con Developer Connect.Si tu repositorio está conectado con Developer Connect, necesitas lo siguiente:
- La cuenta de servicio de Cloud Build debe tener el
Developer Connect Read Token Accessorrol.
- La cuenta de servicio de Cloud Build debe tener el
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 los submódulos.fetchTags: 'true|false': Opcional. Es verdadero si también se deben recuperar las etiquetas remotas (el valor predeterminado esfalse). Nota: Cuandodepthes1(predeterminado),git fetchsolo recupera las etiquetas que apuntan a confirmaciones dentro del límite superficial. Establecedepthen-1para recuperar todas las etiquetas históricas.DEPTH: Opcional. Indica qué tan profundo en el historial del repositorio se debe recuperar. Si no se especifica, se recupera la confirmación más reciente.
1: La confirmación más reciente2: Las últimas dos confirmaciones3: Las últimas tres confirmaciones-1: Todas las confirmaciones
DEST_PATH: Obligatorio. Es la ruta de acceso al directorio en el que se clona el repositorio. Por ejemplo,
my/repo.Cuando estableces el
dest_path, el repositorio se recupera en/workspace/<dest_path>. El valordest_pathdebe ser una ruta de acceso relativa al directorio de trabajo de la compilación.
Especifica un artefacto genérico como dependencia
Para especificar un
artefacto genérico
como dependencia, agrega la siguiente configuración 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/VERSIONTe 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 anexada tiene el siguiente formato:
VERSION@dirsum_sha256=HASH_VALUEPara encontrar la huella digital de un artefacto en un repositorio de Artifact Registry, consulta Recupera la huella digital de una versión del paquete en tu repositorio.
PATH es la dirección de la carpeta a la que Cloud Build descarga el paquete de tu repositorio. Si la carpeta aún no existe, Cloud Build la crea automáticamente.
¿Qué sigue?
Obtén información para conectar un repositorio a Cloud Build con repositorios de Cloud Build.
Obtén información para conectar un repositorio a Cloud Build con Developer Connect.