Supporto dei moduli Git secondari per Cloud Manager git-submodule-support

I moduli Git secondari possono essere utilizzati per unire il contenuto di più rami tra archivi Git al momento della creazione.

Quando il processo di build di Cloud Manager viene eseguito, clona l’archivio della pipeline ed estrae il ramo. Se nella directory principale del ramo è presente un file .gitmodules, viene eseguito il comando corrispondente.

Il comando seguente estrae ogni sottomodulo nella directory appropriata.

$ git submodule update --init

Questa tecnica offre un’alternativa alla soluzione descritta in Utilizzo di più archivi Git di Source. È adatto alle organizzazioni che hanno familiarità con i sottomoduli Git e che preferiscono non gestire un processo di unione esterno.

Ad esempio, supponiamo che ci siano tre archivi. Ogni repository contiene un singolo ramo denominato main. Nell’archivio principale, ovvero quello configurato nelle pipeline, il ramo main ha un file pom.xml che dichiara i progetti contenuti negli altri due archivi:

<?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>

Aggiungi moduli secondari per gli altri due archivi:

$ 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

Il risultato è un file .gitmodules simile al seguente:

[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

Per ulteriori informazioni sui sottomoduli Git, vedere anche il Manuale di riferimento Git.

Note sull’utilizzo degli archivi Adobe usage-notes-recommendations-adobe-repos

  • L’URL Git deve seguire la sintassi descritta nella sezione precedente.

  • I moduli secondari sono supportati unicamente nella radice del ramo.

  • Per motivi di sicurezza, non incorporare le credenziali negli URL Git.

  • Se non diversamente necessario, Adobe consiglia di utilizzare i sottomoduli superficiali eseguendo quanto segue:
    git config -f .gitmodules submodule.<submodule path>.shallow true per ogni sottomodulo.

  • I riferimenti ai moduli secondari vengono memorizzati in commit Git specifici. Quando vengono apportate modifiche all’archivio dei sottomoduli, il commit a cui si fa riferimento deve essere aggiornato.
    Ad esempio, utilizzando quanto segue:

    git submodule update --remote

Supporto dei moduli Git secondari per archivi privati private-repositories

Il supporto per i moduli Git secondari in archivi privati è simile a quello degli archivi Adobe.

Tuttavia, affinché Cloud Manager riconosca la configurazione del modulo secondario, aggiungi un file .gitmodules alla directory principale dell’archivio di aggregazione dopo aver configurato il file pom.xml ed eseguito i comandi git submodule.

File .gitmodules

Aggregatore

Supporto dei moduli Git secondari per archivi esterni external-repositories

Il supporto per i moduli Git secondari negli archivi esterni (Bring Your Own Git) funziona in modo analogo al loro utilizzo con gli archivi Adobe e gli archivi privati. Cloud Manager autentica i recuperi dei sottomoduli durante la generazione, pertanto i sottomoduli in hosting sul provider Git esterno si risolvono senza ulteriore configurazione della pipeline.

Come per gli altri tipi di repository, aggiungere un file .gitmodules alla directory principale dell’archivio aggregatore dopo aver configurato il file pom.xml ed eseguito i comandi git submodule.

Affinché Cloud Manager possa autenticare un recupero di un sottomodulo, l’archivio dei sottomoduli deve appartenere alla stessa organizzazione di un archivio esterno già registrato in Cloud Manager. Cloud Manager utilizza il token di accesso di un archivio registrato in tale organizzazione per autenticare il recupero. Il token viene applicato sul lato server e non viene mai esposto nell’ambiente di build.

Note sull’utilizzo usage-notes-recommendations-private-repos

  • Queste note si applicano ai sottomoduli che puntano a un archivio GitHub.com. Per i sottomoduli in hosting su un provider Git esterno, vedi Supporto dei sottomoduli Git per archivi esterni.
  • Nel file .gitmodules sono supportati sia gli URL relativi che gli URL assoluti dei sottomoduli.
  • L’archivio dei sottomoduli deve essere ospitato su un provider Git esterno supportato: GitHub Enterprise, GitLab, Bitbucket o Azure DevOps.
  • Almeno un archivio della stessa organizzazione deve essere registrato in Cloud Manager in modo che sia disponibile un token di accesso valido.
  • Per motivi di sicurezza, non incorporare le credenziali negli URL Git.
  • Si applicano anche le limitazioni all’utilizzo dei moduli Git secondari con archivi gestiti da Adobe.
recommendation-more-help
experience-manager-cloud-service-help-main-toc