테스트 및 개발용 환경 변수 설정

테스트 및 개발 목적으로 플러그인에 dotenv 지엄(GitHub - bkeepers/dotenv: A Ruby gem to load environment variables from `.env`. · GitHub)을 추가하는 것을 고려하고 있습니다. 이렇게 하면 환경별로 환경 변수를 쉽게 설정할 수 있습니다.

제가 놓치고 있는 부분이 있는지, 이 목적을 달성하는 더 나은 방법이 있는지 궁금합니다.

무엇을 로드하려고 하시나요?

DISCOURSE_SETTING_NAME=value

을 모든 SiteSettings에 설정할 수 있습니다.

이렇게 하면 도움이 될까요?

아쉽게도 아닙니다. 저는 비공개 플러그인을 개발 중이며, 민감한 데이터를 소스 컨트롤에 커밋하지 않도록 환경 변수를 설정해야 합니다.

프로덕션 서버에 해당 환경 변수를 설정하는 것은 문제가 없지만, 테스트를 실행할 때 테스트 환경에 이 값을 로드할 수 있으면 좋겠습니다. 인라인으로 지정하는 것도 가능하지만, 이상적으로는 더 확장 가능한 솔루션을 원합니다.

이 글을 올린 이유는 해당 제너럼을 추가하는 것이 적절하지 않다고 느껴서입니다. Discourse에는 이미 이 문제에 대한 해결책이 있을 거라고 생각했거든요.

그렇다면 다음과 같은 환경 변수를 설정할 수 있을 것 같습니다.

 DISCOURSE_MY_PLUGIN_SETTING

테스트의 경우, 스펙에서 GlobalSetting.my_plugin_setting을 설정할 수 있을 것 같지만, 이는 대부분 추측에 불과합니다.

감사합니다. GlobalSetting을 확인해 보겠습니다.

플러그인에서 ENV['yourkey'] = 'yourval'을 설정하면 작동합니다. 오늘도 코드를 테스트할 때 이 방법을 사용했습니다.

또한 모드별로 특정 gems를 설치할 수도 있습니다. 저는 아직 직접 시도해 보지 않았지만, 아래에 예시를 하나 올립니다. discourse-assign/Gemfile at main · discourse/discourse-assign · GitHub