LGTMeowで利用するWebAPI
AWS Lambda + Goで実装しています。
デプロイには AWS CLI を利用しています。 なお、Lambdaの初期構築は Terraform で行なっています。
名前付きプロファイル を利用しています。
このプロジェクトで利用しているプロファイル名は lgtm-cat
です。
BuildKit を有効化してください。
最新バージョン(20.10.16)ではデフォルトで有効になっていると思います。
下記のリポジトリの docker-compose を利用して MySQL のコンテナを起動。
https://github.com/nekochans/lgtm-cat-migration
環境変数を設定してください。
lgtm-cat-migration
と同じ値を設定する必要があります。
# テストの実行に必要
export TEST_DB_HOST=localhost:3306
export TEST_DB_USER=local_lgtm_cat_user
export TEST_DB_PASSWORD=password
export TEST_DB_NAME=local_lgtm_cat
export DB_HOSTNAME=mysql:3306
export DB_USERNAME=local_lgtm_cat_user
export DB_PASSWORD=password
export DB_NAME=local_lgtm_cat
export COGNITO_USER_POOL_ID=STG環境のcognito user poolのID
下記のコマンドを実行することで、Docker で起動することができます。
make run-normal-build
build が必要な場合のみこちらを利用make run-normal
デバッカーを利用したい場合、は下記を実行してください。
make run-debug-build
# build が必要な場合のみこちらを利用make run-debug
一部のテストでDBに接続するテストをしています。
DBに接続できないとエラーとなるので、テストの実行前に下記の設定を行ってください。
ローカル上で Docker で動作させる
手順と同様に下記のリポジトリの docker-compose を利用して MySQL のコンテナを起動
https://github.com/nekochans/lgtm-cat-migration
- 下記のコマンドで、Docker 上でテストを実行
make test-build
# build が必要な場合のみこちらを利用make test
mock の自動生成ツール matryer/moq を利用しています。
lgtm-cat-api-dev コンテナ上で下記のようなコマンドを実行することで、mockが自動生成されます。コマンドの詳細は moq のドキュメントを参照。
moq -out domain/lgtm_image_repository_test.moq.go ./domain LgtmImageRepository
ローカルからデプロイする場合、下記のコマンドを実行してください。
# STG
make deploy-stg
# PROD
make deploy-prod