memoir-backend
ローカル実行
導入
$ make install
起動
$ air
ローカル環境で Firesbase エミュレータ起動して使用する
$ npx firebase --config ./e2e/simulator/firebase.json emulators:start
GraphQL スキーマドキュメント
$ yarn graphql-markdown http://localhost:8080/query > schema.md
GraphQL スキーマ更新
$ go run github.com/99designs/gqlgen generate
ユニットテスト
実行
moq を生成
$ make moqgen
テストを実行
$ go test ./...
カバレッジ表示
インストール
$ brew install k1LoW/tap/octocov
実行
$ go test ./... -coverprofile=coverage.out
$ octocov
各ファイルカバレッジ確認
$ octocov ls-files
$ octocov view graph/invite.go
E2E テスト
$ FIRESTORE_EMULATOR_HOST=localhost:3600 air
$ cd e2e
$ make create_login_yaml
$ make local_scenarigo
環境変数を更新
$ gcloud run services describe SERVICE --format export > service.yaml
# 環境変数を追加して以下を実行
$ gcloud run services replace service.yaml
本番デプロイ
$ git checkout main
$ git pull --ff-only origin main
$ git tag -a v1.0.0 -m 'リリース内容'
$ git push origin v1.0.0
CI 環境
Firebase トークン
$ firebase login:ci
レビュー環境
$ base64 -i serviceAccount.review.json | pbcopy
$ base64 -i gcpServiceAccount.review.json | pbcopy
E2E
$ base64 -i .env | pbcopy
$ base64 -i envenb.go | pbcopy
$ base64 -i e2e/.env | pbcopy
本番環境
$ base64 -i serviceAccount.production.json | pbcopy
$ base64 -i gcpServiceAccount.production.json | pbcopy
静的解析
$ go install github.com/wheatandcat/memoir-static-analytics/checkcustomerror/cmd/checkcustomerror@v0.0.7
$ go vet -vettool=$(which checkcustomerror) ./...