하나의 GitLab 프로젝트에 모든 패키지 저장
여러분은 하나의 프로젝트 패키지 레지스트리에 모든 패키지를 저장할 수 있습니다. GitLab 리포지터리를 코드 리포지터리로 사용하는 대신, 모든 패키지를 리포지터리에 저장할 수 있습니다. 그런 다음 원격 리포지터리를 구성하여 GitLab의 프로젝트를 가리키도록 할 수 있습니다.
다음과 같은 이유로 이렇게 하고 싶을 수 있습니다.
- GitLab에 패키지를 발행하려고 하지만 코드가 저장된 곳과는 다른 프로젝트에 발행하고 싶을 때.
- 패키지를 하나의 프로젝트에 그룹화하고 싶을 때. 예를 들어 모든 npm 패키지, 특정 부서의 모든 패키지 또는 모든 비공개 패키지를 하나의 프로젝트에 넣고 싶어 할 수 있습니다.
- 다른 프로젝트에 대한 패키지를 설치할 때 하나의 원격을 사용하고 싶을 때.
- 서드파티 패키지 레지스트리에서 패키지를 GitLab의 단일 장소로 마이그레이션하고 각 패키지에 대해 별도의 프로젝트 설정을 걱정하고 싶지 않을 때.
- CI/CD 파이프라인에서 모든 패키지를 한 프로젝트에 빌드하고, 패키지를 검증하는 담당자가 한 곳에서 모두 관리할 수 있게 하고 싶을 때.
예시 안내
특정 기능은 이 기능에 특정되어 있지 않습니다. 대신, 각 패키지 관리 시스템의 기능을 활용하여 서로 다른 패키지 유형을 동일한 곳에 발행하는 것입니다.
- Maven, npm 및 Conan 패키지를 동일한 프로젝트에 추가하는 방법을 보려면 비디오를 시청하세요.
- 예시 프로젝트 보기.
다양한 패키지 유형을 한 GitLab 프로젝트에 저장
우리가 모든 패키지를 호스팅할 프로젝트를 만드는 방법을 살펴보겠습니다.
- GitLab에서 새 프로젝트를 생성합니다. 프로젝트에는 코드나 콘텐츠가 필요하지 않습니다.
- 왼쪽 사이드바에서 프로젝트 개요를 선택하고, 프로젝트 ID를 기록합니다.
-
인증용 액세스 토큰을 생성합니다. 패키지 레지스트리의 모든 패키지 형식은 다음을 사용하여 발행할 수 있습니다:
- 개인 액세스 토큰.
-
CI/CD 작업 토큰 (
CI_JOB_TOKEN
)을 CI/CD 작업에서 사용합니다. 이 프로젝트의 레지스트리에 패키지를 발행하는 모든 프로젝트는 이 프로젝트의 작업 토큰 허용 디렉터리에 나열되어야 합니다.
프로젝트가 비공개인 경우, 패키지를 다운로드하려면 인증이 필요합니다.
- 로컬 프로젝트를 구성하고 패키지를 발행합니다.
여러 종류의 패키지를 동일한 프로젝트에 업로드하거나, 패키지 유형이나 가시성 수준에 따라 분할할 수 있습니다.
npm
npm을 사용하는 경우 .npmrc
파일을 생성합니다. 프로젝트에 패키지를 발행할 적합한 URL을 추가합니다. 마지막으로 package.json
파일에 섹션을 추가합니다.
GitLab 패키지 레지스트리 npm 문서의 지침을 따릅니다. 이후에 npm publish
를 사용하여 npm 패키지를 프로젝트에 발행할 수 있습니다. 이에 대한 자세한 내용은 패키지 발행 섹션에서 설명하고 있습니다.
Maven
Maven을 사용하는 경우 pom.xml
파일을 업데이트하여 배포 섹션을 추가합니다. 이 업데이트에는 GitLab Maven Repository 문서에 설명된 프로젝트에 적합한 URL이 포함됩니다. 그런 다음 settings.xml
파일을 추가하고 액세스 토큰을 포함해야 합니다. 이제 Maven 패키지를 프로젝트에 발행할 수 있습니다.
Conan
Conan을 사용하는 경우 GitLab을 Conan 레지스트리 원격으로 추가해야 합니다. GitLab Conan Repository 문서의 지침을 따릅니다. 그런 다음 Conan 사용자로서 +
로 구분된 (+
) 프로젝트 경로를 사용하여 패키지를 생성해야 합니다. 예를 들어, 프로젝트가 https://gitlab.com/foo/bar/my-proj
에 위치한 경우,
conan create . foo+bar+my-proj/channel
를 사용하여 Conan 패키지를 생성합니다.
channel
은 패키지 채널(예: stable
또는 beta
)입니다.
패키지를 생성한 후에, 최종 패키지 레시피에 따라 패키지를 발행할 준비가 되어 있습니다. 예를 들어:
CONAN_LOGIN_USERNAME=<gitlab-username> CONAN_PASSWORD=<personal_access_token> conan upload MyPackage/1.0.0@foo+bar+my-proj/channel --all --remote=gitlab
Composer
Composer 패키지를 해당 프로젝트 외부로 발행할 수 없습니다. 해당 패키지를 다른 프로젝트에 발행할 수 있게 하는 기능을 구현하도록 하는 이슈가 있습니다.
다른 모든 패키지 유형
GitLab에서 지원하는 모든 패키지 유형은 동일한 GitLab 프로젝트에 발행할 수 있습니다. 이전 릴리스에서는 모든 패키지 유형을 동일한 프로젝트에 발행할 수 없었습니다.