Compatibilidad con el submódulo Git para Cloud Manager git-submodule-support

Los submódulos Git se pueden usar para combinar el contenido de varias ramas en repositorios Git en el momento de la compilación.

Cuando se ejecuta el proceso de generación de Cloud Manager, clona el repositorio de la canalización y extrae la rama. Si existe un archivo .gitmodules en el directorio raíz de la rama, se ejecuta el comando correspondiente.

El siguiente comando extrae cada submódulo en el directorio apropiado.

$ git submodule update --init

Esta técnica ofrece una alternativa a la solución descrita en Uso de varios repositorios de Git de Source. Es adecuado para organizaciones cómodas con los submódulos Git y que prefieren no administrar un proceso de combinación externo.

Por ejemplo, supongamos que hay tres repositorios. Cada repositorio contiene una sola rama denominada main. En el repositorio principal (es decir, el configurado en las canalizaciones), la rama main tiene un archivo pom.xml que declara los proyectos contenidos en los otros dos repositorios:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>customer.group.id</groupId>
    <artifactId>customer-reactor</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>project-a</module>
        <module>project-b</module>
    </modules>

</project>

Añada submódulos para los otros dos repositorios:

$ git submodule add -b main https://git.cloudmanager.adobe.com/ProgramName/projectA/ project-a
$ git submodule add -b main https://git.cloudmanager.adobe.com/ProgramName/projectB/ project-b

El resultado es un archivo .gitmodules similar al siguiente:

[submodule "project-a"]
    path = project-a
    url = https://git.cloudmanager.adobe.com/ProgramName/projectA/
    branch = main
[submodule "project-b"]
    path = project-b
    url = https://git.cloudmanager.adobe.com/ProgramName/projectB/
    branch = main

Consulte también el Manual de referencia de Git para obtener más información sobre los submódulos Git.

Notas de uso de los repositorios de Adobe usage-notes-recommendations-adobe-repos

  • La dirección URL de Git debe seguir la sintaxis descrita en la sección anterior.

  • Solo se admiten submódulos en la raíz de la rama.

  • Por motivos de seguridad, no incruste credenciales en las direcciones URL de Git.

  • A menos que sea necesario, Adobe recomienda utilizar submódulos superficiales ejecutando lo siguiente:
    git config -f .gitmodules submodule.<submodule path>.shallow true para cada submódulo.

  • Las referencias del submódulo Git se almacenan en confirmaciones de Git específicas. Cuando se realizan cambios en el repositorio de submódulos, se debe actualizar la confirmación a la que se hace referencia.
    Por ejemplo, mediante el uso de lo siguiente:

    git submodule update --remote

Compatibilidad con los submódulos de Git para repositorios privados private-repositories

La compatibilidad con los submódulos Git en repositorios privados es similar a su uso con repositorios Adobe.

Sin embargo, para que Cloud Manager reconozca la configuración del submódulo, agregue un archivo .gitmodules al directorio raíz del repositorio del agregador después de configurar el archivo pom.xml y ejecutar los comandos git submodule.

Archivo .gitmodules

Agregador

Compatibilidad del submódulo Git con repositorios externos external-repositories

La compatibilidad con submódulos Git en repositorios externos (Traer su propio Git) funciona de forma muy similar a su uso con repositorios de Adobe y repositorios privados. Cloud Manager autentica las recuperaciones de submódulos durante la compilación, por lo que los submódulos alojados en el proveedor Git externo se resuelven sin necesidad de configurar la canalización adicional.

Al igual que con los otros tipos de repositorio, agregue un archivo .gitmodules al directorio raíz del repositorio del agregador después de configurar el archivo pom.xml y ejecutar los comandos git submodule.

Para que Cloud Manager autentique una recuperación de submódulos, el repositorio de submódulos debe pertenecer a la misma organización que un repositorio externo que ya esté registrado en Cloud Manager. Cloud Manager utiliza el token de acceso de un repositorio registrado en esa organización para autenticar la recuperación. El token se aplica del lado del servidor y nunca se expone al entorno de compilación.

Notas de uso usage-notes-recommendations-private-repos

  • Estas notas se aplican a submódulos que dirigen a un repositorio GitHub.com. Para los submódulos alojados en un proveedor Git externo, consulte Compatibilidad del submódulo Git con repositorios externos.
  • Se admiten las direcciones URL relativas y absolutas de submódulos en el archivo .gitmodules.
  • El repositorio de submódulos debe alojarse en un proveedor de Git externo admitido: GitHub Enterprise, GitLab, Bitbucket o Azure DevOps.
  • Al menos un repositorio de la misma organización debe estar registrado en Cloud Manager para que haya disponible un token de acceso válido.
  • Por motivos de seguridad, no incruste credenciales en las direcciones URL de Git.
  • Las limitaciones de uso de submódulos de Git con repositorios administrados por Adobe también se aplican.
recommendation-more-help
experience-manager-cloud-service-help-main-toc