모든 패키지를 하나의 GitLab 프로젝트에 저장하기
하나의 프로젝트의 패키지 레지스트리에 모든 패키지를 저장할 수 있습니다. 코드를 저장하는 데 GitLab 리포지토리를 사용하는 대신, 모든 패키지를 저장하는 데 리포지토리를 사용할 수 있습니다. 그런 다음 원격 리포지토리를 GitLab의 프로젝트를 가리키도록 구성할 수 있습니다.
이렇게 하려는 이유는 다음과 같습니다:
-
GitLab에 패키지를 게시하고 싶지만 코드가 저장된 곳과 다른 프로젝트에 게시하고자 합니다.
-
하나의 프로젝트에 패키지를 함께 그룹화하고 싶습니다. 예를 들어, 모든 npm 패키지 또는 특정 부서의 모든 패키지, 또는 모든 비공식 패키지를 같은 프로젝트에 두고 싶을 수 있습니다.
-
다른 프로젝트를 위해 패키지를 설치할 때 하나의 원격을 사용하고 싶습니다.
-
서드파티 패키지 레지스트리에서 GitLab의 단일 장소로 패키지를 마이그레이션하고 각 패키지에 대해 별도의 프로젝트를 설정하는 것에 대해 걱정하고 싶지 않습니다.
-
CI/CD 파이프라인이 모든 패키지를 하나의 프로젝트에 빌드하게 하여 패키지를 검증하는 사람이 모두 한곳에서 관리할 수 있도록 하고 싶습니다.
예시 워크스루
이 기능에 특정한 기능은 없습니다. 대신, 각 패키지 관리 시스템의 기능을 활용하여 다양한 패키지 유형을 동일한 장소에 게시합니다.
- 동일한 프로젝트에 Maven, npm, 및 Conan 패키지를 추가하는 방법에 대한 비디오를 시청하세요.
- 예시 프로젝트 보기.
하나의 GitLab 프로젝트에 다양한 패키지 유형 저장하기
모든 패키지를 호스팅할 하나의 프로젝트를 생성하는 방법을 살펴보겠습니다:
- GitLab에서 새 프로젝트를 생성합니다. 프로젝트에는 코드나 콘텐츠가 필요하지 않습니다.
- 왼쪽 사이드바에서 프로젝트 개요를 선택하고 프로젝트 ID를 확인합니다.
-
인증을 위한 액세스 토큰을 생성합니다. 패키지 레지스트리의 모든 패키지 유형은 다음을 사용하여 게시할 수 있습니다:
- 개인 액세스 토큰.
- CI/CD 작업에서 CI/CD 작업 토큰 (
CI_JOB_TOKEN
).
이 프로젝트의 레지스트리에 패키지를 게시하는 모든 프로젝트는 이 프로젝트의 작업 토큰 허용 목록 에 나열되어야 합니다.
프로젝트가 비공식인 경우 패키지를 다운로드하려면 인증이 필요합니다.
- 로컬 프로젝트를 구성하고 패키지를 게시합니다.
동일한 프로젝트에 모든 유형의 패키지를 업로드하거나 패키지 유형이나 패키지 가시성 수준에 따라 나눌 수 있습니다.
npm
npm을 사용하는 경우, .npmrc
파일을 생성합니다. 프로젝트에 패키지를 게시하기 위한 적절한 URL을 추가합니다. 마지막으로 package.json
파일에 섹션을 추가합니다.
GitLab 패키지 레지스트리 npm 문서에서 지침을 따르세요. 이 작업을 완료한 후, npm publish
를 사용하여 프로젝트에 npm 패키지를 게시할 수 있으며, 이는 패키지를 게시하는 방법 섹션에 설명되어 있습니다.
Maven
Maven을 사용하는 경우, 배포 섹션과 함께 pom.xml
파일을 업데이트합니다. 이러한 업데이트에는
프로젝트에 대한 적절한 URL이 포함되며, 이는 GitLab Maven Repository 문서에 설명되어 있습니다.
그런 다음, 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 패키지는 프로젝트 외부에 게시할 수 없습니다.
다른 프로젝트에 이러한 패키지를 게시할 수 있는 기능을 구현하기 위해 문제가 존재합니다.
All other package types
GitLab에서 지원하는 모든 패키지 유형은 동일한 GitLab 프로젝트에 게시할 수 있습니다.
이전 릴리스에서는 동일한 프로젝트에 모든 패키지 유형을 게시할 수 없었습니다.