马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
极狐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 管理员可以为您的实例启用此库。
启用:
- Feature.enable(:rubygem_packages)
复制代码 禁用:
- Feature.disable(:rubygem_packages)
复制代码 为特定项目启用或禁用:
- Feature.enable(:rubygem_packages, Project.find(1))
- Feature.disable(:rubygem_packages, Project.find(2))
复制代码 创建 Ruby gem
假如您在创建 Ruby gem 时必要资助,请参阅 RubyGems 文档。
向软件包库进行身份验证
在推送到软件包库之前,您必须进行身份验证。
为此,您可以利用:
- 个人访问令牌,范围设置为 api。
- 摆设令牌,其范围设置为 read_package_registry、 write_package_registry 或两者均有。
- CI 作业令牌。
利用个人访问令牌或摆设令牌进行身份验证
要利用个人访问令牌进行身份验证,请创建或编辑 ~/.gem/credentials 文件并添加:
- ---
- https://gitlab.example.com/api/v4/projects/<project_id>/packages/rubygems: '<your token>'
复制代码
- <your token> 必须是您的个人访问令牌或摆设令牌的令牌值。
- 您的项目 ID 在您的项目主页上。
利用 CI 作业令牌进行身份验证
要在 GitLab CI/CD 中利用 RubyGems 下令,您可以利用 CI_JOB_TOKEN 代替个人访问令牌或摆设令牌。
比方:
- # assuming a my_gem.gemspec file is present in the repository with the version currently set to 0.0.1
- image: ruby
- run:
- before_script:
- - mkdir ~/.gem
- - echo "---" > ~/.gem/credentials
- - |
- echo "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/rubygems: '${CI_JOB_TOKEN}'" >> ~/.gem/credentials
- - chmod 0600 ~/.gem/credentials # rubygems requires 0600 permissions on the credentials file
- script:
- - gem build my_gem
- - 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:
- ---
- https://gitlab.example.com/api/v4/projects/${env.CI_PROJECT_ID}/packages/rubygems: '${env.CI_JOB_TOKEN}'
复制代码 推送 Ruby gem
先决条件:
- 您必须向软件包库进行身份验证。
- 允许的最大 gem 大小为 3 GB。
要推送您的 gem,请运行如下下令:
- gem push my_gem-0.0.1.gem --host <host>
复制代码 请注意, 是您在设置身份验证时利用的 URL。比方:
- gem push my_gem-0.0.1.gem --host https://gitlab.example.com/api/v4/projects/1/packages/rubygems
复制代码 此消息表现 gem 上传成功:
- Pushing gem to https://gitlab.example.com/api/v4/projects/1/packages/rubygems...
- {"message":"201 Created"}
复制代码 要检察已发布的 gem,请转到您项目标 软件包和镜像库 页面。推送到极狐GitLab 的 Gems 不会立刻体如今您项目标 Packages UI 中。处理处罚 gem 最多大概必要 10 分钟。
推送具有雷同名称或版本的 gem
假如已存在具有雷同名称和版本的包,您可以推送 gem。
两者都在 UI 中可见且可访问。但是,只有近来推送的 gem 用于安装。
安装 Ruby gem
GitLab 的 Ruby gems 库正在开发中,尚未预备好用于生产。您不能从库中安装 Gems。但是,您可以直接从 UI 或利用 API 下载 .gem 文件。
|