Prise en charge des sous-modules Git pour Cloud Manager 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 adapté aux 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 qui est configuré dans les pipelines), la branche main contient un fichier pom.xml qui déclare 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>
Ajoutez 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 similaire au fichier suivant :
[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
Consultez également le Manuel de référence Git pour plus d’informations sur les sous-modules Git.
Notes d’utilisation des référentiels Adobe usage-notes-recommendations-adobe-repos
-
L’URL Git doit respecter 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 indication contraire, Adobe vous recommande d’utiliser des sous-modules superficiels en exécutant les opérations suivantes :
git config -f .gitmodules submodule.<submodule path>.shallow truepour chaque sous-module. -
Les références des sous-modules Git sont stockées vers des validations Git spécifiques. 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 similaire à leur utilisation avec les référentiels Adobe.
Toutefois, pour que Cloud Manager reconnaisse la configuration du sous-module, ajoutez un fichier .gitmodules au répertoire racine du référentiel d’agrégation après avoir configuré votre fichier pom.xml et exécuté les commandes git submodule.
Prise en charge des sous-modules Git pour les référentiels externes external-repositories
La prise en charge des sous-modules Git dans les référentiels externes (apportez votre propre Git) fonctionne de la même manière que leur utilisation avec les référentiels Adobe et les référentiels privés. Cloud Manager authentifie les récupérations de sous-module pendant la génération. De ce fait, les sous-modules hébergés sur votre fournisseur Git externe sont résolus sans configuration de pipeline supplémentaire.
Comme pour les autres types de référentiel, ajoutez un fichier .gitmodules au répertoire racine du référentiel d’agrégation après avoir configuré votre fichier pom.xml et exécuté les commandes git submodule.
Pour que Cloud Manager authentifie une récupération de sous-module, le référentiel de sous-module doit appartenir à la même organisation qu’un référentiel externe déjà enregistré dans Cloud Manager. Cloud Manager utilise le jeton d’accès d’un référentiel enregistré dans cette organisation pour authentifier la récupération. Le jeton est appliqué côté serveur et n’est jamais exposé à l’environnement de création.
Remarques sur l’utilisation usage-notes-recommendations-private-repos
- Ces notes s’appliquent aux sous-modules qui pointent vers un référentiel GitHub.com. Pour les sous-modules hébergés sur un fournisseur Git externe, consultez la section Prise en charge des sous-modules Git pour les référentiels externes .
- Les URL de sous-module relatives et absolues du fichier
.gitmodulessont prises en charge. - Le référentiel de sous-module doit être hébergé sur un fournisseur Git externe pris en charge : GitHub Enterprise, GitLab, Bitbucket ou Azure DevOps.
- Au moins un référentiel de la même organisation doit être enregistré dans Cloud Manager afin qu’un jeton d’accès valide soit disponible.
- Pour des raisons de sécurité, n’incorporez pas les informations d’identification dans les URL Git.
- Les limites d’utilisation des sous-modules Git avec des référentiels gérés par Adobe s’appliquent également.