[circleCI,browserStack]pythonコード上で、環境変数を使用

circleCIで、アクセスキーなどソースコードに直接書くべきではない環境変数を設定しました。
設定した環境変数をymlファイルではなく、pythonソースコード上で使いたかったのですが、やり方にはまったので、やり方を残しておきます。

  • 環境変数の設定方法
    Settings
    → ORGANIZATION の Projects
    → 設定したいプロジェクトの右側に表示された歯車アイコン
    →BUILD SETTINGS の Environment Variables
    →Add Variable

※CircleCIの公式とかでは、細かい説明はあるものの簡単な設定方法とかわかりづらかったので、メモしておきます。

  • pythonでの取得方法
    browserstackの公式みたら、わかりました。
    ※最初CircleCIの情報として探していましたが、CircleCIのEnvironment Variablesで設定した値は、OSの環境変数と扱われると考えるとそんなに難しい話ではないのではと思われます。

  • 参考
    https://www.browserstack.com/automate/behave

  • 抜粋
    BROWSERSTACK_USERNAMEという環境変数を設定して、呼び出す例です。

    BROWSERSTACK_USERNAME = os.environ['BROWSERSTACK_USERNAME'] if 'BROWSERSTACK_USERNAME' in os.environ else CONFIG['user']
    BROWSERSTACK_ACCESS_KEY = os.environ['BROWSERSTACK_ACCESS_KEY'] if 'BROWSERSTACK_ACCESS_KEY' in os.environ else CONFIG['key']
    context.browser = webdriver.Remote(
        desired_capabilities=desired_capabilities,
        command_executor="http://%s:%s@%s/wd/hub" % (BROWSERSTACK_USERNAME, BROWSERSTACK_ACCESS_KEY, CONFIG['server'])
    )