Umweltvariablen für Test und Entwicklung festlegen

Ich überlege, die dotenv-Gem (GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub) für Test- und Entwicklungszwecke zu meinem Plugin hinzuzufügen. So kann ich meine Umgebungsvariablen je nach Umgebung einfach festlegen.

Ich frage mich, ob ich etwas übersehe und es einen besseren Weg gibt, dies zu erreichen?

Was versuchst du zu laden? Du kannst für alle SiteSettings

DISCOURSE_SETTING_NAME=WERT

festlegen.

Würde das helfen?

Leider nicht. Ich arbeite an einem privaten Plugin und muss eine Umgebungsvariable für sensible Daten setzen, damit ich sie nicht in die Versionskontrolle einchecke.

Es ist in Ordnung, diese Umgebungsvariable auf dem Produktionsserver zu setzen, aber ich möchte sie beispielsweise beim Ausführen von Tests auch in der Testumgebung laden können. Ich könnte sie zwar inline angeben, aber idealerweise wäre eine skalierbare Lösung besser.

Der Grund für meinen Post ist, dass das Hinzufügen dieses Gems sich falsch anfühlt. Ich hätte angenommen, dass Discourse bereits eine Lösung für dieses Problem bereithält.

Dann können Sie meiner Meinung nach Umgebungsvariablen wie

 DISCOURSE_MY_PLUGIN_SETTING

setzen. Für Tests könnten Sie meiner Meinung nach GlobalSetting.my_plugin_setting im Spec setzen, aber das ist eher eine Vermutung.

Danke, ich werde mir GlobalSetting ansehen.

Du kannst ENV['yourkey'] = 'yourval' in deinem Plugin setzen, und das funktioniert. Ich habe es heute noch verwendet, um meinen Code zu testen.

Außerdem kannst du gems installieren, die spezifisch für Modi sind. Ich habe es selbst noch nicht ausprobiert, aber hier ist ein Beispiel: discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub