Dom*_*cke 5 ruby-on-rails environment-variables github-actions
我一直在尝试使用 Rails 设置 GitHub 操作,但是我遇到了RAILS_MASTER_KEY(我的假设)的问题。
这是我在最后一步收到的错误消息# Build and run tests:
rails aborted!
ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
/home/runner/work/my-project/my-project/config/environment.rb:5:in `<main>'
/home/runner/work/my-project/my-project/bin/rails:9:in `<top (required)>'
/home/runner/work/my-project/my-project/bin/spring:15:in `require'
/home/runner/work/my-project/my-project/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Caused by:
ArgumentError: key must be 16 bytes
Run Code Online (Sandbox Code Playgroud)
.github/workflows/main.yml:
rails aborted!
ActiveSupport::MessageEncryptor::InvalidMessage: ActiveSupport::MessageEncryptor::InvalidMessage
/home/runner/work/my-project/my-project/config/environment.rb:5:in `<main>'
/home/runner/work/my-project/my-project/bin/rails:9:in `<top (required)>'
/home/runner/work/my-project/my-project/bin/spring:15:in `require'
/home/runner/work/my-project/my-project/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Caused by:
ArgumentError: key must be 16 bytes
Run Code Online (Sandbox Code Playgroud)
我推断这与我的 RAILS_MASTER_KEY 变量有关。
我检查了存储在项目 ENV 变量中的密钥,它恰好是 32 个字节。我不确定如何最好地进行,并且我对删除密钥犹豫不决,担心我会破坏应用程序的其他部分。在我的书中,将密钥的选项设置为合法的 32 个字节会更可取——只是我不知道如何以及在哪里......
关于如何解决这个问题的任何想法?
cdm*_*dmo 13
@Ruslan Vaeev 给出了答案的第一部分 - 将主密钥值添加到 GitHub 存储库 Secret。接下来,在您的工作流程 yml 文件中使用该秘密,例如${{ secrets.RAILS_MASTER_KEY }}:
env:
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,并通过为我的测试环境创建凭据找到了解决方案。
EDITOR=vim rails credentials:edit --environment --test
您可能需要将测试密钥文件上传到存储库,以便可以解密凭据文件。请注意仅维护测试信息。
我在这里找到了解释:https://blog.saeloun.com/2019/10/10/rails-6-adds-support-for-multi-environment-credentials.html
我在这里上传了我的配置:https ://tello.io/ruby-rails-github-actions-mysql
| 归档时间: |
|
| 查看次数: |
1406 次 |
| 最近记录: |