Supporto dei moduli Git secondari per gli archivi Adobe 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. È ideale per le organizzazioni che hanno familiarità con i moduli Git secondari e 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 quindi i sottomoduli 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.

Limitazioni e consigli limitations-recommendations

Quando utilizzi i sottomoduli Git con archivi gestiti da Adobe, tieni presente le seguenti limitazioni.

  • La sintassi dell’URL Git deve essere esattamente quella 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 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. Di conseguenza, 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 è generalmente simile al loro utilizzo con gli archivi Adobe.

Tuttavia, dopo aver configurato il file pom.xml e aver eseguito i comandi git submodule, è necessario aggiungere un file .gitmodules alla directory radice dell'archivio di aggregazione affinché Cloud Manager riconosca la configurazione del sottomodulo.

File .gitmodules

Aggregatore

Limitazioni e consigli limitations-recommendations-private-repos

Quando utilizzi i sottomoduli Git con archivi privati, tieni presenti le seguenti limitazioni:

  • Gli URL Git del sottomodulo possono essere in formato HTTPS o SSH, ma devono puntare a un archivio GitHub.com. Non è supportata l’aggiunta di un sottomodulo dell’archivio di Adobi a un archivio di aggregazione GitHub o viceversa.
  • I sottomoduli GitHub devono essere accessibili dall’app GitHub di Adobe.
  • Si applicano anche le limitazioni all’utilizzo dei moduli Git secondari con archivi gestiti da Adobe.
recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab