Настройка переменных окружения для тестирования и разработки

Я думаю о добавлении в свой плагин для тестирования и разработки гем dotenv (GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub). Это нужно, чтобы я мог легко задавать переменные окружения для каждого окружения.

Не упускаю ли я что-то и есть ли лучший способ этого добиться?

Что вы пытаетесь загрузить? Вы можете установить

DISCOURSE_SETTING_NAME=значение

для всех настроек сайта.

Это поможет?

К сожалению, нет. Я работаю над приватным плагином и мне нужно установить переменную окружения для конфиденциальных данных, чтобы не добавлять их в систему контроля версий.

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

Причина, по которой я опубликовал этот вопрос, в том, что добавление этого гема кажется неправильным. Я предполагал, что в Discourse уже должно быть решение для этой проблемы.

Тогда, я думаю, вы можете задать переменные окружения, например:

 DISCOURSE_MY_PLUGIN_SETTING

Для тестов, я полагаю, вы можете установить GlobalSetting.my_plugin_setting в спецификации, но это в основном предположение.

Спасибо, я изучу GlobalSetting

Вы можете установить ENV['yourkey'] = 'yourval' в вашем плагине, и это сработает. Я использовал это сегодня, чтобы протестировать свой код.

Кроме того, вы можете устанавливать gem-пакеты, специфичные для режимов. Я сам ещё не пробовал, но вот пример: discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub