From ae0102b3ade3cd5c94b378bdfac4a7e8a87c5522 Mon Sep 17 00:00:00 2001 From: Alec LaLonde Date: Fri, 21 Oct 2022 09:04:49 -0600 Subject: [PATCH] Added NODE_ENV to frontend build for a cleaner config --- .github/workflows/gcp-deploy-frontend.yaml | 13 +-- packages/backend/README.md | 12 +++ packages/web/config.ts | 14 ++-- packages/web/pages/_app.tsx | 96 +++++++++++----------- 4 files changed, 77 insertions(+), 58 deletions(-) create mode 100644 packages/backend/README.md diff --git a/.github/workflows/gcp-deploy-frontend.yaml b/.github/workflows/gcp-deploy-frontend.yaml index 61395633..51cfc7ae 100644 --- a/.github/workflows/gcp-deploy-frontend.yaml +++ b/.github/workflows/gcp-deploy-frontend.yaml @@ -73,10 +73,10 @@ jobs: CLOUDRUN_REGION: ${{steps.first.outputs.CLOUDRUN_REGION}} DOCKER_REGISTRY: ${{steps.first.outputs.DOCKER_REGISTRY}} FRONTEND_URL: ${{steps.first.outputs.FRONTEND_URL}} - GA4_ID: ${{steps.first.outputs.GA4_ID}} DOCKER_PATH: ${{steps.second.outputs.DOCKER_PATH}} GRAPHQL_URL: ${{steps.second.outputs.GRAPHQL_URL}} FRONTEND_TAG: ${{steps.third.outputs.FRONTEND_TAG}} + NODE_ENV: ${{steps.first.outputs.NODE_ENV}} steps: - name: First Interpolation of Variables @@ -85,10 +85,11 @@ jobs: echo "::set-output name=CLOUDRUN_REGION::${{env.REGISTRY_REGION}}" echo "::set-output name=DOCKER_REGISTRY::${{env.REGISTRY_REGION}}-docker.pkg.dev" if [[ ${{github.ref_name}} == 'master' ]]; then + echo ::set-output name=NODE_ENV::production echo ::set-output name=HASURA_HOST::api.metagame.wtf echo ::set-output name=FRONTEND_URL::https://metagame.wtf - echo ::set-output name=GA4_ID::G-B1NKK3Q1BP else + echo ::set-output name=NODE_ENV::test echo ::set-output name=HASURA_HOST::api-staging.metagame.wtf echo ::set-output name=FRONTEND_URL::https://test.metagame.wtf fi @@ -124,9 +125,9 @@ jobs: . -f docker/frontend/Dockerfile \ --tag ${{needs.env.outputs.FRONTEND_TAG}} \ --build-arg GRAPHQL_URL=${{needs.env.outputs.GRAPHQL_URL}} \ + --build-arg NODE_ENV=${{needs.env.outputs.NODE_ENV}} \ --build-arg NEXT_PUBLIC_FRONTEND_URL=${{needs.env.outputs.FRONTEND_URL}} \ - --build-arg NEXT_PUBLIC_YOUTUBE_API_KEY=${{secrets.YOUTUBE_API_KEY}} \ - --build-arg NEXT_PUBLIC_GA4_ID=${{needs.env.outputs.GA4_ID}} + --build-arg NEXT_PUBLIC_YOUTUBE_API_KEY=${{secrets.YOUTUBE_API_KEY}} cache_key: "${{github.event.inputs.cache_key}}-${{hashFiles('packages/web/**', 'packages/design-system/**', 'packages/utils/**', 'package.json')}}" - name: "Login to Registry: ${{needs.env.outputs.DOCKER_REGISTRY}}" @@ -163,13 +164,13 @@ jobs: --ingress all \ --min-instances 1 \ --allow-unauthenticated \ + --set-env-vars NODE_ENV=${{needs.env.outputs.NODE_ENV}} \ --set-env-vars WEB3_STORAGE_TOKEN=${{secrets.WEB3_STORAGE_TOKEN}} \ --set-env-vars OPENSEA_API_KEY=${{secrets.OPENSEA_API_KEY}} \ --set-env-vars NEXT_PUBLIC_IMGIX_TOKEN=${{secrets.IMGIX_TOKEN}} \ --set-env-vars NEXT_PUBLIC_YOUTUBE_API_KEY=${{secrets.YOUTUBE_API_KEY}} \ --set-env-vars NEXT_PUBLIC_GRAPHQL_URL=${{needs.env.outputs.GRAPHQL_URL}} \ - --set-env-vars NEXT_PUBLIC_FRONTEND_URL=${{needs.env.outputs.FRONTEND_URL}} \ - --set-env-vars NEXT_PUBLIC_GA4_ID=${{needs.env.outputs.GA4_ID}} + --set-env-vars NEXT_PUBLIC_FRONTEND_URL=${{needs.env.outputs.FRONTEND_URL}} finish-deployment: name: Finish Deployment diff --git a/packages/backend/README.md b/packages/backend/README.md new file mode 100644 index 00000000..6d88643f --- /dev/null +++ b/packages/backend/README.md @@ -0,0 +1,12 @@ +# MetaGame Backend + +This instance is not exposed to the public, but only accessible through Hasura. + +## Restoring a local DB from a Postgres dump + +- Obtain a postgres dump (`.sql` or `.sql.gz`) from render.com or by way of another friendly builder. +- If the dump is compressed, run `gunzip backup.sql.gz` +- Copy the dump into the running container: + - `docker cp backup.sql the-game_database_1:/var/lib/postgresql` +- Restore using `psql`: + - `docker-compose exec database psql -U metagame -d metagame-db -W -f /var/lib/postgresql/backup.sql` diff --git a/packages/web/config.ts b/packages/web/config.ts index eba06561..5af3acd3 100644 --- a/packages/web/config.ts +++ b/packages/web/config.ts @@ -1,4 +1,5 @@ export const CONFIG = { + environment: process.env.NODE_ENV || 'development', graphqlURL: (() => { const { NEXT_PUBLIC_GRAPHQL_URL: url, NEXT_PUBLIC_GRAPHQL_HOST: host } = process.env; @@ -16,12 +17,13 @@ export const CONFIG = { brightIdNodeURL: process.env.NEXT_BRIGHTID_NODE_URL || 'http:%2f%2fnode.brightid.org', publicURL: process.env.NEXT_PUBLIC_FRONTEND_URL, - gaId: process.env.NEXT_PUBLIC_GA4_ID, - honeybadgerApiKey: process.env.NEXT_PUBLIC_HONEYBADGER_API_KEY, - honeybadgerReportData: - process.env.NEXT_PUBLIC_HONEYBADGER_REPORT_DATA === 'true', - honeybadgerDebug: process.env.NEXT_PUBLIC_HONEYBADGER_DEBUG === 'true', - userbackToken: process.env.NEXT_PUBLIC_USERBACK_TOKEN || '', + gaId: process.env.NEXT_PUBLIC_GA4_ID || 'G-B1NKK3Q1BP', + honeybadgerApiKey: + process.env.NEXT_PUBLIC_HONEYBADGER_API_KEY || + 'hbp_Z4027J7qYTktQkqvUHcOHJqIbpjpWD30A1kd', + userbackToken: + process.env.NEXT_PUBLIC_USERBACK_TOKEN || + '37882|74240|mjn1zXGiYaozZR6qmqFfjl9Sk', discordApiBaseUrl: process.env.DISCORD_API_BASE_URL || 'https://discord.com/api/v8', ceramicURL: diff --git a/packages/web/pages/_app.tsx b/packages/web/pages/_app.tsx index 41e29d81..af7ba18d 100644 --- a/packages/web/pages/_app.tsx +++ b/packages/web/pages/_app.tsx @@ -12,65 +12,69 @@ import Head from 'next/head'; import { WithUrqlProps } from 'next-urql'; import React from 'react'; -const { - userbackToken, - honeybadgerReportData, - honeybadgerApiKey, - honeybadgerDebug, -} = CONFIG; +const { environment, userbackToken, honeybadgerApiKey } = CONFIG; const honeybadgerConfig = { apiKey: honeybadgerApiKey, - environment: process.env.NODE_ENV || 'production', + environment, enableUncaught: true, - reportData: honeybadgerReportData, - debug: honeybadgerDebug, + reportData: environment !== 'development', + // TODO include git SHA in github action deployment + // revision: 'git SHA/project version' }; const honeybadger = Honeybadger.configure(honeybadgerConfig); +const Analytics: React.FC = () => ( + <> +