2 votes

Quelle est la cause de l'absence de secret_key_base sur CircleCI avec Rails 5.2 ?

J'ai une application Rails 5.2 qui utilise Devise. Tout fonctionne bien sur mon ordinateur mais lorsque j'essaie d'exécuter les tests dans CircleCI, j'obtiens cette erreur :

#!/bin/bash -eo pipefail
bundle exec rake db:create
rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:

  config.secret_key = 'faa1201370967c22ce2136d7ad84e50705ed50395292b9fde9f76b04dae12bb9e25246418393d779cbae15b259bac0e3430d28ff24c166c08ece1cae2ac19531'

Vous pouvez le voir ici : https://circleci.com/gh/dashmantech/modulator/12

Le commentaire et le paramètre par défaut sur devise.rb est :

  # The secret key used by Devise. Devise uses this key to generate
  # random tokens. Changing this key will render invalid all existing
  # confirmation, reset password and unlock tokens in the database.
  # Devise will use the `secret_key_base` as its `secret_key`
  # by default. You can change it below and use your own secret key.
  # config.secret_key = "53552bdcd8ec0bb6a83d984380ae1a81233f73cce6093441b097efe1b6bd893eec5da67f2fb3afa3b23242e1b1f089c56eb82621996946f8960d8d71f95602cf"

Il semble que Devise reprendrait la base de la clé secrète de Rails. J'ai défini SECRET_KEY_BASE dans mes paramètres CircleCI (sur leur interface web) et il semble être correctement exporté :

enter image description here

Pourquoi est-ce que je reçois cette erreur ? Que me manque-t-il ? Quelle est la façon dont Rails-5.2 gère ce problème ? secret_key_base pour les tests et la production ?

Le code source complet de mon application est ici : https://github.com/dashmantech/modulator (Je ne suis pas sûr de ce qui est pertinent pour cette question).

0voto

Vince Points 1

J'ai rencontré exactement le même problème (avec Rails 5.2.1 et Devise 4.4.3).

Je l'ai résolu en mise à jour de la gemme Devise pour 4.5.0 .

(Je n'ai toujours aucune idée de la raison pour laquelle Devise n'a pas pu obtenir la secret_key_base dans prod cependant...)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X