すべてのパッケージを1つのGitLabプロジェクトに保存
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
複数のソースからのパッケージを1つのプロジェクトのパッケージレジストリに保存し、リモートリポジトリがGitLabのこのプロジェクトを指すように設定します。
この方法を使用する場合:
- コードが保存されているプロジェクトとは別のGitLabプロジェクトにパッケージを公開します。
- すべてのパッケージを1つのプロジェクトにグループ化します(たとえば、すべてのnpmパッケージ、特定の部門のすべてのパッケージ、または同じプロジェクト内のすべてのプライベートパッケージ)。
- 他のプロジェクトのパッケージをインストールするときに、1つのリモートリポジトリを使用します。
- サードパーティのパッケージレジストリからパッケージをGitLabの1つの場所に移行します。
- CI/CDパイプラインですべてのパッケージを1つのプロジェクトにビルドし、同じ場所でパッケージを管理できるようにします。
チュートリアル例
各パッケージ管理システムを使用して、異なるパッケージタイプを同じ場所に公開します。
- Maven、npm、Conanのパッケージを同じプロジェクトに追加する方法のビデオをご覧ください。
- サンプルプロジェクトを見る。
1つのGitLabプロジェクトに異なるパッケージタイプを保存
すべてのパッケージをホストするために1つのプロジェクトを作成する方法を見てみましょう:
GitLabで新しいプロジェクトを作成します。このプロジェクトには、コードやコンテンツは必要ありません。
左側のサイドバーでProject overview(プロジェクトの概要)を選択し、プロジェクトIDを書き留めます。
認証用のアクセストークンを作成します。パッケージレジストリ内のすべてのパッケージタイプは、次を使用して公開できます:
- パーソナルアクセストークン。
- グループアクセストークンまたはプロジェクトアクセストークン。
- CI/CDジョブのCI/CDジョブトークン(
CI_JOB_TOKEN)。プロジェクトのジョブトークン許可リストには、このプロジェクトのレジストリに公開するすべてのプロジェクトをリストする必要があります。
プロジェクトがプライベートの場合、パッケージをダウンロードするには認証も必要です。
ローカルプロジェクトを構成し、パッケージを公開します。
すべてのパッケージタイプを同じプロジェクトにアップロードするか、パッケージタイプまたは表示レベルに基づいてパッケージを分割できます。
NPM
NPMパッケージの場合:
- レジストリURLを構成するには、
.npmrcファイルを作成します。 - プロジェクトの
package.jsonファイルでpublishConfigオプションを使用してパッケージのスコープを設定します。 npm publishでパッケージを公開します。
詳細については、パッケージレジストリのnpmパッケージを参照してください。
Maven
Mavenパッケージの場合:
- レジストリURLを構成するには、
pom.xmlファイルをrepositoryセクションとdistributionManagementセクションで更新します。 settings.xmlファイルを追加して、アクセストークンを含めます。mvn deployでパッケージを公開します。
詳細については、パッケージレジストリのMavenパッケージを参照してください。
Conan 1
Conan 1の場合:
GitLabパッケージレジストリをConanレジストリリモートとして追加します。
プラス記号(
+)で区切られたプロジェクトパスをConanユーザーとして使用して、Conan 1パッケージを作成します。たとえば、プロジェクトがhttps://gitlab.com/foo/bar/my-projにある場合は、conan create . foo+bar+my-proj/channelを使用してConanパッケージを作成します。channelはbetaやstableなどのパッケージチャンネルです:CONAN_LOGIN_USERNAME=<gitlab-username> CONAN_PASSWORD=<personal_access_token> conan upload MyPackage/1.0.0@foo+bar+my-proj/channel --all --remote=gitlabconan uploadまたはパッケージレシピを使用して、パッケージを公開します。
詳細については、パッケージレジストリのConan 1パッケージを参照してください。
Conan 2
Conan 2の場合:
- GitLabパッケージレジストリをConanレジストリリモートとして追加します。
- Conan 2パッケージを作成します。
conan uploadまたはパッケージレシピを使用して、パッケージを公開します。
詳細については、パッケージレジストリのConan 2パッケージを参照してください。
Composer
Composerパッケージをそのプロジェクトの外部で公開することはできません。他のプロジェクトでのComposerパッケージの公開のサポートは、イシュー250633で提案されています。
その他すべてのパッケージタイプ
GitLabでサポートされているすべてのパッケージタイプは、同じGitLabプロジェクトに公開できます。以前のリリースでは、すべてのパッケージタイプを同じプロジェクトに公開できませんでした。