CI 빌드에서 여러 리포지토리 사용
3816 단어 programming
git clone
를 통해 복제할 수 있는 URL입니다. 대부분의 CI 플랫폼에서 빌드의 매니페스트는 일반적으로 소스 코드 리포지토리 자체에 연결됩니다. Djinn CI를 사용하면 소스 코드 리포지토리에 빌드 매니페스트가 있을 수 있지만 CI 서버 자체는 실제로 해당 리포지토리를 이해하지 못합니다. 대신 지정된 매니페스트의 소스를 확인하고 각 소스를 빌드 환경에 복제합니다.매니페스트에서 여러 소스 정의
previous 게시물과 마찬가지로 빌드 매니페스트에서 여러 소스를 사용하는 예로 djinn-ci/imgsrv을 사용하겠습니다. 매니페스트 파일의 상단을 보면 빌드하는 데 세 개의 리포지토리가 필요하다는 것을 알 수 있습니다. 이들은 djinn-ci/imgsrv 자체의 소스 코드, golang/tools 및 valyala/quicktemplate 이며, 이렇게 정의됩니다.
sources:
- https://github.com/djinn-ci/imgsrv.git
- https://github.com/golang/tools
- https://github.com/valyala/quicktemplate
매니페스트를 실행하는 동안 위의 모든 소스 리포지토리가 복제됩니다. 빌드 서버를 실행하기 위해 사용자 인터페이스를 통해 이를 제출하는 경우 이들 각각은 고유한
clone.n
작업이 연결됩니다. 여기서 n
는 1
에서 위로 세는 숫자입니다.SSH 키 및 개인 저장소
앞서 언급했듯이
sources
매개변수에 지정된 URL은 빌드 환경에서 복제하기 위해 git clone
에 제공됩니다. 즉, 소스 URL을 지정할 때 SSH 형식을 사용할 수 있습니다.[email protected]:org/private-repo
이것은 개인 저장소에서 복제하려는 경우에 바람직합니다. 그러나 이렇게 하려면 환경에 복제할 때 일종의 배포 키로 사용할 SSH key을 생성해야 합니다.
github.com
에서 복제할 때 위의 예를 살펴보겠습니다. 해당 리포지토리에 대한 deploy key을 생성하고 Djinn CI에 업로드합니다. 그렇게 하면 해당 키와 연결할 일부 사용자 지정 SSH 구성을 지정할 수 있습니다. 이는 빌드에서 복제될 때 키를 사용할 수 있게 해 줍니다.Host github.com
User git
IdentityFile /root/.ssh/id_deploy_private_repo
구성과 함께 키가 있으면 빌드에서 리포지토리
org/private-repo
를 사용할 수 있습니다. 그러나 여기에서 문제가 발생할 수 있습니다. 다른 개인 리포지토리에서 복제하려는 경우 동일한 배포 키를 거기에 추가할 수 있지만 보안 영향이 우려되는 경우 바람직하지 않을 수 있습니다. 따라서 대신 해당 리포지토리에 대해 다른 키를 생성합니다. 각 리포지토리에 대해 하나씩 두 개의 배포 키가 있는 경우 각 키를 각 리포지토리와 어떻게 연결하시겠습니까?라는 질문이 제기됩니다.이는
.ssh_config
파일 형식과 Host
일치를 사용하여 수행할 수 있습니다. 두 개인 리포지토리가 private-repo
및 acme-repo
이고 둘 다 org
의 github.com
아래에 있다고 가정합니다. 그리고 각각 id_deploy_private_repo
및 id_deploy_acme_repo
라는 배포 키가 있습니다. 그런 다음 각 키에 다음 SSH 구성을 제공할 수 있습니다.Host private-repo.github.com
User git
IdentityFile /root/.ssh/id_deploy_private_repo
Host acme-repo.github.com
User git
IdentityFile /root/.ssh/id_deploy_acme_repo
그런 다음 빌드 매니페스트에서 다음 소스를 제공할 수 있습니다.
sources:
- [email protected]:org/private-repo
- [email protected]:org/acme-repo
그것은 약간의 해키 해결 방법이지만 다른 개인 리포지토리에 대해 다른 배포 키를 사용하려는 경우 작동합니다.
추가 정보
Djinn CI에 대해 자세히 알아보려면 플랫폼 기능에 대한 개요를 제공하는 about page을 방문하고 user documentation도 확인하십시오.
Reference
이 문제에 관하여(CI 빌드에서 여러 리포지토리 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andrewpillar/using-multiple-repositories-in-your-ci-builds-5bac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)