Cloud Manager에 대한 Git 하위 모듈 지원 git-submodule-support
Git 하위 모듈을 사용하여 빌드 시 Git 저장소에 있는 여러 분기의 콘텐츠를 병합할 수 있습니다.
Cloud Manager의 빌드 프로세스가 실행되면 파이프라인의 저장소를 복제하고 분기를 체크아웃합니다. 분기의 루트 디렉터리에 .gitmodules 파일이 있으면 해당 명령이 실행됩니다.
다음 명령은 각 하위 모듈을 적절한 디렉터리로 체크아웃합니다.
$ git submodule update --init
이 기술은 여러 Source Git 저장소를 사용하여 작업에 설명된 솔루션에 대한 대안을 제공합니다. Git 하위 모듈에 익숙하고 외부 병합 프로세스를 관리하지 않는 것이 좋은 조직에 적합합니다.
예를 들어 저장소가 3개라고 가정해 보겠습니다. 각 리포지토리에는 이름이 main인 단일 분기가 있습니다. 기본 저장소(즉, 파이프라인에 구성된 저장소)에서 main 분기에는 다른 두 저장소에 포함된 프로젝트를 선언하는 pom.xml 파일이 있습니다.
<?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>
다른 두 저장소에 대한 하위 모듈을 추가합니다.
$ 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
결과는 다음과 유사한 .gitmodules 파일입니다.
[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
Git 하위 모듈에 대한 자세한 내용은 Git 참조 설명서를 참조하십시오.
Adobe 저장소에 대한 사용 노트 usage-notes-recommendations-adobe-repos
-
Git URL은 이전 섹션에서 설명한 구문을 따라야 합니다.
-
분기의 루트에 있는 하위 모듈만 지원됩니다.
-
보안상의 이유로 Git URL에 자격 증명을 임베드하지 마십시오.
-
달리 필요한 경우가 아니면 다음을 실행하여 약식 하위 모듈을 사용하는 것이 좋습니다.
각 하위 모듈에 대해git config -f .gitmodules submodule.<submodule path>.shallow true입니다. -
Git 하위 모듈 참조는 특정 Git 커밋에 저장됩니다. 하위 모듈 저장소가 변경되면 참조된 커밋을 업데이트해야 합니다.
예를 들어 다음을 사용합니다.git submodule update --remote
비공개 저장소에 대한 Git 하위 모듈 지원 private-repositories
개인 저장소에서 Git 하위 모듈에 대한 지원은 Adobe 리포지토리에서 사용하는 것과 유사합니다.
그러나 Cloud Manager에서 하위 모듈 구성을 인식하려면 pom.xml 파일을 구성하고 git submodule 명령을 실행한 후 .gitmodules 파일을 집계 저장소의 루트 디렉터리에 추가하십시오.
외부 저장소에 대한 Git 하위 모듈 지원 external-repositories
외부 저장소의 Git 하위 모듈 지원(자체 Git 가져오기)은 Adobe 저장소 및 개인 저장소에서 사용하는 것과 매우 유사합니다. Cloud Manager은 빌드 중에 하위 모듈 가져오기를 인증하므로 외부 Git 공급자에 호스팅된 하위 모듈이 추가적인 파이프라인 구성 없이 확인됩니다.
다른 저장소 유형과 마찬가지로 pom.xml 파일을 구성하고 git submodule 명령을 실행한 후 .gitmodules 파일을 집계 저장소의 루트 디렉터리에 추가합니다.
Cloud Manager에서 하위 모듈 가져오기를 인증하려면 하위 모듈 저장소가 Cloud Manager에 이미 등록된 외부 저장소와 동일한 조직에 속해 있어야 합니다. Cloud Manager은 해당 조직에 등록된 저장소의 액세스 토큰을 사용하여 가져오기를 인증합니다. 토큰은 서버측에 적용되며 빌드 환경에 노출되지 않습니다.
사용 정보 usage-notes-recommendations-private-repos
- 이 참고는 GitHub.com 저장소를 가리키는 하위 모듈에 적용됩니다. 외부 Git 공급자에 호스팅된 하위 모듈의 경우 외부 저장소에 대한 Git 하위 모듈 지원을 참조하십시오.
.gitmodules파일의 상대 하위 모듈 URL과 절대 하위 모듈 URL이 모두 지원됩니다.- 하위 모듈 저장소는 지원되는 외부 Git 공급자(GitHub Enterprise, GitLab, Bitbucket 또는 Azure DevOps)에서 호스팅되어야 합니다.
- 유효한 액세스 토큰을 사용할 수 있도록 동일한 조직의 하나 이상의 저장소가 Cloud Manager에 등록되어야 합니다.
- 보안상의 이유로 Git URL에 자격 증명을 임베드하지 마십시오.
- Adobe 관리 저장소의 Git 하위 모듈 사용 시 제한 사항도 적용됩니다.