Compatibilidad con los submódulos de Git para repositorios de Adobe 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 ideal 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>

Luego debe agregar 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.

Limitaciones y recomendaciones limitations-recommendations

Cuando utilice submódulos Git con repositorios administrados por Adobe, tenga en cuenta las siguientes limitaciones.

  • La dirección URL de Git debe ser exacta como 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. Como resultado, 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 submódulos Git en repositorios privados suele ser similar a su uso con repositorios de Adobe.

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

Archivo .gitmodules

Agregador

Limitaciones y recomendaciones limitations-recommendations-private-repos

Cuando utilice submódulos Git con repositorios privados, tenga en cuenta las siguientes limitaciones:

  • Las direcciones URL de Git del submódulo pueden estar en formato HTTPS o SSH, pero deben apuntar a un repositorio GitHub.com. No se admite agregar un submódulo de repositorio de Adobe a un repositorio de agregador de GitHub o al revés.
  • La aplicación de Adobe de GitHub debe poder acceder a los submódulos de GitHub.
  • Las limitaciones de uso de submódulos de Git con repositorios administrados por Adobe también se aplican.
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab