memoir-backend
ローカル実行
導入
$ go get -u github.com/cosmtrek/air
起動
$ air
GraphQL スキーマドキュメント
$ yarn graphql-markdown http://localhost:8080/query > schema.md
GraphQLスキーマ更新
$ go run github.com/99designs/gqlgen generate
ユニットテスト
実行
moqを生成
$ make moqgen
テストを実行
$ go test -race ./...
カバレッジ表示
インストール
$ 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