怎样利用极狐GitLab 软件包堆栈功能托管 ruby?

[复制链接]
发表于 2025-9-17 19:14:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:


  • 极狐GitLab 中文文档
  • 极狐GitLab 中文论坛
  • 极狐GitLab 官网
软件包库中的 Ruby gems (BASIC ALL)


WARNING:Ruby gems 软件包库正在开发中,由于功能有限,尚未预备好用于生产。
您可以在项目标软件包库中发布 Ruby gem,然后在必要将它们用作依赖项时安装它们。只管您可以将 gem 推送到软件包库,但不能从库里安装它们。但是,您可以直接从软件宝库的 UI 下载 gem 文件,大概利用 API。
启用 Ruby gems 库

Ruby gems 库背后有一个默认禁用的功能标志。可以访问 GitLab Rails 控制台的 GitLab 管理员可以为您的实例启用此库。
启用:
  1. Feature.enable(:rubygem_packages)
复制代码
禁用:
  1. Feature.disable(:rubygem_packages)
复制代码
为特定项目启用或禁用:
  1. Feature.enable(:rubygem_packages, Project.find(1))
  2. Feature.disable(:rubygem_packages, Project.find(2))
复制代码
创建 Ruby gem

假如您在创建 Ruby gem 时必要资助,请参阅 RubyGems 文档。
向软件包库进行身份验证


在推送到软件包库之前,您必须进行身份验证。
为此,您可以利用:


  • 个人访问令牌,范围设置为 api。
  • 摆设令牌,其范围设置为 read_package_registry、 write_package_registry 或两者均有。
  • CI 作业令牌。
利用个人访问令牌或摆设令牌进行身份验证

要利用个人访问令牌进行身份验证,请创建或编辑 ~/.gem/credentials 文件并添加:
  1. ---
  2. https://gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems: '<your token>'
复制代码


  • <your token> 必须是您的个人访问令牌或摆设令牌的令牌值。
  • 您的项目 ID 在您的项目主页上。
利用 CI 作业令牌进行身份验证

要在 GitLab CI/CD 中利用 RubyGems 下令,您可以利用 CI_JOB_TOKEN 代替个人访问令牌或摆设令牌。
比方:
  1. # assuming a my_gem.gemspec file is present in the repository with the version currently set to 0.0.1
  2. image: ruby
  3. run:
  4.   before_script:
  5.     - mkdir ~/.gem
  6.     - echo "---" > ~/.gem/credentials
  7.     - |
  8.       echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygems: '${CI_JOB_TOKEN}'" >> ~/.gem/credentials
  9.     - chmod 0600 ~/.gem/credentials # rubygems requires 0600 permissions on the credentials file
  10.   script:
  11.     - gem build my_gem
  12.     - gem push my_gem-0.0.1.gem --host ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygems
复制代码
您还可以在检入极狐GitLab 的 ~/.gem/credentials 文件中利用 CI_JOB_TOKEN:
  1. ---
  2. https://gitlab.example.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/rubygems: '${env.CI_JOB_TOKEN}'
复制代码
推送 Ruby gem


先决条件:


  • 您必须向软件包库进行身份验证。
  • 允许的最大 gem 大小为 3 GB。
要推送您的 gem,请运行如下下令:
  1. gem push my_gem-0.0.1.gem --host <host>
复制代码
请注意, 是您在设置身份验证时利用的 URL。比方:
  1. gem push my_gem-0.0.1.gem --host https://gitlab.example.com/api/v4/projects/1/packages/rubygems
复制代码
此消息表现 gem 上传成功:
  1. Pushing gem to https://gitlab.example.com/api/v4/projects/1/packages/rubygems...
  2. {"message":"201 Created"}
复制代码
要检察已发布的 gem,请转到您项目标 软件包和镜像库 页面。推送到极狐GitLab 的 Gems 不会立刻体如今您项目标 Packages UI 中。处理处罚 gem 最多大概必要 10 分钟。
推送具有雷同名称或版本的 gem

假如已存在具有雷同名称和版本的包,您可以推送 gem。
两者都在 UI 中可见且可访问。但是,只有近来推送的 gem 用于安装。
安装 Ruby gem


GitLab 的 Ruby gems 库正在开发中,尚未预备好用于生产。您不能从库中安装 Gems。但是,您可以直接从 UI 或利用 API 下载 .gem 文件。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表