【问题标题】:Rails credentials not working on travis CI - undefined method `[]' for nil:NilClassRails 凭证不适用于 travis CI - nil:NilClass 的未定义方法“[]”
【发布时间】:2021-03-25 05:18:59
【问题描述】:

我正在使用 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 文件添加了一个加密密钥。
  • 将其提交到(私人)repo,然后在 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

还有什么我可以测试以使其在 Travis CI 上运行的吗?

【问题讨论】:

    标签: ruby-on-rails travis-ci


    【解决方案1】:

    添加

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多