Rails 凭据在 travis CI 上不起作用 - nil:NilClass 的未定义方法 '[]'



我使用Rails凭据在我的应用程序上存储敏感信息。它在本地运行良好,例如通过调用Rails.application.credentials[Rails.env.to_sym][:key_secret]

我的凭据存储为:

test:
key_secret: <key>
development:
key_secret: <key>

Travis没有选择这些信息,当测试开始运行时,它就会攻击构建。

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

我做了什么:

  • 我运行了travis encrypt RAILS_MASTER_KEY='cat config/master.key' --add env,这为我的.travis.yml文件添加了一个加密密钥
  • 将其提交给(私有(回购,然后在travis环境变量部分添加我的master.key进行解密,作为RAILS_MASTER_KEY

没有任何变化,我在travis上调试了一些线路,得到了:

:test # Rails.env.to_sym
#<ActiveSupport::EncryptedConfiguration:0x0000558fe0675870 @key_path=#<Pathname:/home/api/limpar/current/config/master.key>, @content_path=#<Pathname:/home/api/limpar/current/config/credentials.yml.enc>, @env_key="RAILS_MASTER_KEY", @raise_if_missing_key=false> #Rails.application.credentials

我还有什么可以测试的吗?

添加

- echo "$RAILS_MASTER_KEY" > config/master.key

到我在travis.yml文件上的before_install段,为我解决了它!

相关内容

最新更新