Suporte ao submódulo Git para Cloud Manager 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. É adequado 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>
Adicionar 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.
Notas de uso para repositórios Adobe usage-notes-recommendations-adobe-repos
-
O URL do Git deve seguir 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, a Adobe recomenda usar submódulos superficiais executando o seguinte:
git config -f .gitmodules submodule.<submodule path>.shallow truepara cada submódulo. -
As referências do submódulo Git são armazenadas em confirmações Git específicas. 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 é semelhante ao seu uso com repositórios Adobe.
No entanto, para que o Cloud Manager reconheça a configuração do submódulo, adicione um arquivo .gitmodules ao diretório raiz do repositório do agregador depois de configurar seu arquivo pom.xml e executar os comandos git submodule.
Suporte a submódulos Git para repositórios externos external-repositories
O suporte para submódulos Git em repositórios externos (Bring Your Own Git) funciona de forma semelhante ao uso com repositórios Adobe e privados. O Cloud Manager autentica buscas de submódulos durante a compilação, de modo que os submódulos hospedados em seu provedor Git externo são resolvidos sem configuração de pipeline adicional.
Assim como em outros tipos de repositório, adicione um arquivo .gitmodules ao diretório raiz do repositório agregador depois de configurar seu arquivo pom.xml e executar os comandos git submodule.
Para que o Cloud Manager autentique uma busca de submódulo, o repositório do submódulo deve pertencer à mesma organização de um repositório externo já registrado no Cloud Manager. O Cloud Manager usa o token de acesso de um repositório registrado nessa organização para autenticar a busca. O token é aplicado no lado do servidor e nunca é exposto ao ambiente de criação.
Notas de uso usage-notes-recommendations-private-repos
- Essas notas se aplicam aos submódulos que apontam para um repositório GitHub.com. Para submódulos hospedados em um provedor Git externo, consulte Suporte ao submódulo Git para repositórios externos.
- Há suporte para URLs do submódulo relativo e absoluto no arquivo
.gitmodules. - O repositório do submódulo deve ser hospedado em um provedor Git externo compatível: GitHub Enterprise, GitLab, Bitbucket ou Azure DevOps.
- Pelo menos um repositório da mesma organização deve ser registrado no Cloud Manager para que um token de acesso válido esteja disponível.
- Por motivos de segurança, não incorpore credenciais nas URLs do Git.
- As limitações do uso de submódulos Git com repositórios gerenciados pela Adobe também se aplicam.