하나의 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 저장소 문서에 설명된 프로젝트용 적절한 URL이 포함됩니다. 그런 다음 settings.xml
파일을 추가하고 액세스 토큰을 포함합니다. 이후에 프로젝트에 Maven 패키지를 발행할 수 있습니다.
Conan
Conan을 사용하는 경우 GitLab을 Conan 레지스트리 원격으로 추가해야 합니다. GitLab Conan 저장소 문서의 지침을 따릅니다. 그런 다음 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 프로젝트에 발행할 수 있습니다. 이전 릴리스에서는 모든 패키지 유형이 동일한 프로젝트에 발행되지는 않았습니다.