Suporte ao submódulo Git para repositórios da Adobe git-submodule-support
Os submódulos Git podem ser usados para mesclar o conteúdo de várias ramificações em repositórios Git no momento da criação.
Quando o processo de criação do Cloud Manager é executado, ele clona o repositório do pipeline e verifica a ramificação. Se um arquivo .gitmodules
existir no diretório raiz da ramificação, o comando correspondente será executado.
O comando a seguir verifica cada submódulo no diretório apropriado.
$ git submodule update --init
Esta técnica oferece uma alternativa para a solução descrita em Trabalhar com vários repositórios Git da Source. É ideal para organizações familiarizadas com os submódulos do Git e que preferem não gerenciar um processo de mesclagem externo.
Por exemplo, suponha que haja três repositórios. Cada repositório contém uma única ramificação chamada main
. No repositório principal, ou seja, aquele configurado nos pipelines, a ramificação main
tem um arquivo pom.xml
que declara os projetos contidos nos outros dois repositórios:
<?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>
Em seguida, você adicionaria submódulos para os outros dois repositórios:
$ 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
O resultado é um arquivo .gitmodules
semelhante ao seguinte:
[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 também o Manual de referência do Git para obter mais informações sobre os submódulos do Git.
Limitações e recomendações limitations-recommendations
Ao usar submódulos do Git com repositórios gerenciados pelo Adobe, esteja ciente das limitações a seguir.
-
O URL do Git deve seguir exatamente a sintaxe descrita na seção anterior.
-
Somente há suporte aos submódulos na raiz da ramificação.
-
Por motivos de segurança, não incorpore credenciais nas URLs do Git.
-
A menos que seja necessário, o Adobe recomenda que você use submódulos superficiais executando o seguinte:
git config -f .gitmodules submodule.<submodule path>.shallow true
para cada submódulo. -
As referências do submódulo Git são armazenadas em confirmações Git específicas. Como resultado, quando alterações no repositório do submódulo são feitas, a confirmação referenciada deve ser atualizada.
Por exemplo, usando o seguinte:git submodule update --remote
Suporte ao submódulo Git para repositórios privados private-repositories
O suporte para submódulos Git em repositórios privados geralmente é semelhante ao seu uso com repositórios Adobe.
No entanto, após configurar seu arquivo pom.xml
e executar os comandos git submodule
, você deve adicionar um arquivo .gitmodules
ao diretório raiz do repositório agregador para que o Cloud Manager reconheça a configuração do submódulo.
Limitações e recomendações limitations-recommendations-private-repos
Ao usar submódulos Git com repositórios privados, lembre-se das seguintes limitações:
- Os URLs Git do submódulo podem estar no formato HTTPS ou SSH, mas devem apontar para um repositório GitHub.com. Não há suporte para a adição de um submódulo do repositório de Adobe a um repositório agregador GitHub ou o inverso.
- Os submódulos do GitHub devem ser acessíveis pelo aplicativo GitHub do Adobe.
- As limitações do uso de submódulos Git com repositórios gerenciados pela Adobe também se aplicam.