e2eテストでfirebase authをcircleci上で再現したく、なかなか苦労したのでメモに残しておきます
- circleciの環境変数にkeyとvalueを追加
- valueはbase64にエンコード
- 私はここを使ってjsonからbase63に変換しました:https://codebeautify.org/json-to-base64-converter
- jsonはaccount_key.jsonを全て貼り付け、変換が完了したら、==を含め全てをコピペ
- circleciに環境変数として追加
- circleciの設定ファイルをこのように記述
test:
docker:
- image: circleci/python:3.7-node
user: root
- image: circleci/postgres:10.5-alpine
environment:
POSTGRES_USER: root
POSTGRES_DB: xxxxxx
POSTGRES_PASSWORD: password
TEST_DATABASE_URL: postgresql://root:password@localhost:5432/xx
steps:
- checkout
## この部分で実行してます。
- run:
name: create firebase credential
command: |
echo ${FIREBASE_KEYFILE_JSON} | base64 --decode --ignore-garbage > ${HOME}/account_key.json
echo 'export FIREBASE_KEYFILE_JSON=$(cat $HOME/account_key.json)' >> $BASH_ENV
- run:
name: Install Python Dependencies
command: |
pip3 install -r requirements.txt --no-cache-dir
- run:
name: migrate database
command: |
alembic upgrade head
まとめ
割と参考事例なくて苦労しましたが、セキュアに保ちながらcircleciでテストできるようになりました。
もちろんデプロイとかもできるかと思うので、参考にしてください
コメントを残す