Définir les variables d'environnement pour les tests et le développement

J’envisage d’ajouter le gem dotenv (GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub) à mon plugin à des fins de test et de développement. Cela me permettrait de définir facilement mes variables d’environnement selon l’environnement.

Je me demandais si je manquais quelque chose et s’il existe une meilleure façon de réaliser cela ?

Que tentez-vous de charger ? Vous pouvez définir

DISCOURSE_SETTING_NAME=valeur

pour tous les paramètres du site.

Cela vous aiderait-il ?

Malheureusement non. Je travaille sur un plugin privé et je dois définir une variable d’environnement pour des données sensibles afin de ne pas les intégrer dans le contrôle de version.

Cela ne pose pas de problème de définir cette variable d’environnement sur le serveur de production, mais je souhaite pouvoir la charger dans l’environnement de test lors de l’exécution de tests, par exemple. Je pourrais la spécifier en ligne, mais idéalement, je rechercherais une solution plus évolutive.

La raison pour laquelle j’ai posté est que l’ajout de ce gem me semble inapproprié. J’aurais supposé que Discourse disposait déjà d’une solution pour ce problème.

Alors, je pense que vous pouvez définir des variables d’environnement comme

 DISCOURSE_MY_PLUGIN_SETTING

Pour les tests, je pense que vous pourriez définir GlobalSetting.my_plugin_setting dans la spécification, mais c’est surtout une supposition.

Merci, je vais examiner GlobalSetting.

Vous pouvez définir ENV['yourkey'] = 'yourval' dans votre plugin et cela fonctionne. Je l’ai utilisé aujourd’hui même pour tester mon code.

De plus, vous pouvez installer des gems spécifiques à des modes. Je ne l’ai pas encore essayé moi-même, mais voici un exemple : discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub