Действия Github и RAILS_MASTER_KEY - PullRequest
0 голосов
/ 26 апреля 2020

Я пытался настроить GitHub-действия с Rails, однако я столкнулся с проблемой с 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

.github/workflows/main.yml:

name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on:  ubuntu-latest
    services:
      db:
        image: postgres:11
        env:
          POSTGRES_PASSWORD: xxxxxx
        ports: ['5432:5432']
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    steps:
      # Download a copy of the code in the repository before running CI tests
      - name: Checkout repository
        uses: actions/checkout@v2

      # Setup Ruby
      - name: Setup Ruby
        uses: actions/setup-ruby@v1
        with: 
          ruby-version: 2.6.6

      # NPM install
      - name: NPM install with caching
        uses: bahmutov/npm-install@v1.1.0
        # with:
         # cmd: install

      # Build and run tests
      - name: Build and run tests
        env:
          DATABASE_URL: postgres://postgres:@localhost:5432/test
          RAILS_ENV: test
          RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
        run: |
          sudo apt-get -yqq install libpq-dev
          gem install bundler
          bundle install --jobs 4 --retry 3
          bundle exec rails db:prepare
          bundle exec rails test

Я предполагаю, что это делать с моей переменной RAILS_MASTER_KEY.

Я проверил ключ, который я сохранил в переменных ENV моего проекта, и он оказался размером 32 байта. Я не уверен, как лучше поступить, и не решаюсь удалить ключ, опасаясь, что сломаю другие части приложения. В моей книге было бы гораздо предпочтительнее задать для ключа возможность быть легальным с 32 байтами - просто я не знаю, как и где ...

Есть мысли о том, как решить эту проблему?

...