我使用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
段,为我解决了它!