使用 GitHub Actions 将 Ruby Gem 推送到 RubyGems.org 时遇到问题

问题描述 投票:0回答:1

我在尝试使用 GitHub Actions 将 Ruby gem 发布到 RubyGems.org 时遇到问题。尽管工作流程似乎执行没有错误,但在将 gem 推送到 RubyGems 时遇到了问题。

我使用的是从 RubyGems 生成的 API 密钥,我已将其作为 Secret 添加到我的 GitHub 存储库中。但是,我在 GitHub Actions 日志中遇到以下错误:

Run gem push *.gem --key rubygems_api_key
ERROR:  No such API key. Please add it to your configuration (done automatically on initial `gem push`).
Error: Process completed with exit code 1.

以下是我的工作流程在

release.yml
中的配置方式:

- name: Publish to RubyGems
  run: gem push *.gem --key rubygems_api_key
  env:
    RUBYGEMS_API_KEY: ${{ secrets.GEM_HOST_API_KEY }}

我已验证 API 密钥是否已在 GitHub 中正确添加为 Secret,并且 Secret 名称在工作流程中是否匹配。我是否遗漏了什么,或者我需要采取额外的步骤吗?任何帮助将不胜感激。

谢谢!

ruby rubygems
1个回答
0
投票

--key
gem push选项期望在文件中找到密钥
~/.gem/credentials

使用 GitHub Actions,无需将密钥写入文件并从那里读回,而是在环境变量中传递密钥要容易得多。如果省略

--key
选项,RubyGems 将在名为
GEM_HOST_API_KEY
的环境变量中查找 API 密钥。

因此,您需要做的就是从对

--key
的调用中删除
gem push
选项,并在名为
GEM_HOST_API_KEY
的环境变量中发布秘密 API 密钥:

- name: Publish to RubyGems
  run: gem push *.gem
  env:
    GEM_HOST_API_KEY: ${{ secrets.GEM_HOST_API_KEY }}
© www.soinside.com 2019 - 2024. All rights reserved.