为什么圆圈 CI 找不到 rails 凭据但规范测试在本地有效?

Why is circle CI failing to find rails credentials but spec tests works locally?

圆CI我得到以下错误

Failure/Error: hmac_secret = Rails.application.credentials[Rails.env.to_sym][:some_key]
NoMethodError:
undefined method `[]' for nil:NilClass

Rails 凭据在 credentials.yml.enc 文件中加密;该文件可以安全地添加到源代码管理中。 Rails 还将生成一个 master.key 文件,该文件 添加到您的源代码管理中。

CI 环境在运行其套件时需要存储库中的 master.key 副本。如果那不可能,您可以使用正确的值设置 RAILS_MASTER_KEY 环境变量。

也有可能您的 credentials 文件没有用于您的 Rails.env.to_sym 计算结果的字段。如果文件如下所示:

development:
  secret_key: 123
production:
  secret_key: 234

test 环境中使用 Rails.application.credentials[Rails.env.to_sym][:secret_key] 不会成功。