You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GitHub Actions推送Ruby Gem至RubyGems.org失败求助

解决GitHub Actions发布RubyGem到RubyGems.org失败的问题

问题分析

你遇到的No such API key错误,核心原因是gem push命令里的--key rubygems_api_key是指定本地gem配置文件中已保存的密钥别名,但GitHub Actions的运行环境是全新的,并没有预先配置这个别名对应的密钥。尽管你设置了RUBYGEMS_API_KEY环境变量,但--key参数并不会直接读取该环境变量的值。

解决方案

方案1:直接利用环境变量推送(推荐)

RubyGems默认会读取RUBYGEMS_API_KEY环境变量作为推送密钥,无需额外指定--key参数。修改你的工作流步骤如下:

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

方案2:先配置密钥别名再推送

如果一定要使用--key参数,需要先在GitHub Actions环境中把密钥添加到gem配置里,再执行推送:

- name: Configure RubyGems key
  run: gem config --global rubygems_api_key $RUBYGEMS_API_KEY
  env:
    RUBYGEMS_API_KEY: ${{ secrets.GEM_HOST_API_KEY }}

- name: Publish to RubyGems
  run: gem push *.gem --key rubygems_api_key

额外验证步骤

  • 确认*.gem能匹配到正确的gem包文件,可在推送前添加ls -la *.gem步骤检查文件是否存在
  • 再次核对GitHub仓库Secret的名称GEM_HOST_API_KEY和工作流中引用的名称完全一致
  • 确保RubyGems的API密钥拥有推送权限(密钥类型需为"Push")

内容的提问来源于stack exchange,提问作者Nazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:19:58