Skip to content

wheatandcat/memoir-backend

Repository files navigation

memoir-backend

coverage

ローカル実行

導入

$ 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/[email protected]
$ go vet -vettool=$(which checkcustomerror) ./...