Prise en charge des sous-modules Git pour les référentiels Adobe git-submodule-support
Les sous-modules Git peuvent être utilisés pour fusionner le contenu de plusieurs branches dans des référentiels Git au moment de la création.
Lorsque le processus de création Cloud Manager s’exécute, il clone le référentiel du pipeline et extrait la branche. Si un fichier .gitmodules
existe dans le répertoire racine de la branche, la commande correspondante est exécutée.
La commande suivante extrait chaque sous-module dans le répertoire approprié.
$ git submodule update --init
Cette technique offre une alternative à la solution décrite dans Utilisation de plusieurs référentiels Git Source. Il est idéal pour les organisations qui maîtrisent les sous-modules Git et qui préfèrent ne pas gérer de processus de fusion externe.
Supposons, par exemple, qu’il existe trois référentiels. Chaque référentiel contient une branche unique nommée main
. Dans le référentiel principal, c’est-à-dire celui configuré dans les pipelines, la branche main
possède un fichier pom.xml
déclarant les projets contenus dans les deux autres référentiels :
<?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>
Vous pouvez ensuite ajouter des sous-modules pour les deux autres référentiels :
$ 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
Le résultat est un fichier .gitmodules
semblable à ce qui suit :
[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
Pour plus d’informations sur les sous-modules Git, consultez également le manuel de référence Git .
Limites et recommandations limitations-recommendations
Lors de l’utilisation de sous-modules Git avec des référentiels gérés par Adobe, tenez compte des limites suivantes.
-
L’URL Git doit se trouver exactement dans la syntaxe décrite dans la section précédente.
-
Seuls les sous-modules situés à la racine de la branche sont pris en charge.
-
Pour des raisons de sécurité, n’incorporez pas les informations d’identification dans les URL Git.
-
Sauf si nécessaire, Adobe vous recommande d’utiliser des sous-modules superficiels en exécutant les opérations suivantes :
git config -f .gitmodules submodule.<submodule path>.shallow true
pour chaque sous-module. -
Les références des sous-modules Git sont stockées vers des validations Git spécifiques. Par conséquent, lorsque des modifications sont apportées au référentiel de sous-module, la validation référencée doit être mise à jour.
Par exemple, en utilisant ce qui suit :git submodule update --remote
Prise en charge des sous-modules Git pour les référentiels privés private-repositories
La prise en charge des sous-modules Git dans les référentiels privés est généralement similaire à leur utilisation avec les référentiels Adobe.
Cependant, après avoir configuré votre fichier pom.xml
et exécuté les commandes git submodule
, vous devez ajouter un fichier .gitmodules
dans le répertoire racine du référentiel de l’agrégateur pour que Cloud Manager reconnaisse la configuration du sous-module.
Limites et recommandations limitations-recommendations-private-repos
Lors de l’utilisation de sous-modules Git avec des référentiels privés, gardez à l’esprit les restrictions suivantes :
- Les URL Git de sous-module peuvent être au format HTTPS ou SSH, mais doivent pointer vers un référentiel GitHub.com. L’ajout d’un sous-module de référentiel d’Adobe à un référentiel d’agrégateur GitHub ou l’inverse n’est pas pris en charge.
- Les sous-modules GitHub doivent être accessibles par l’application GitHub Adobe.
- Les limites d’utilisation des sous-modules Git avec des référentiels gérés par Adobe s’appliquent également.