mirror of
https://github.com/MetaFam/TheGame.git
synced 2026-04-24 03:00:09 -04:00
add ENVs properly
This commit is contained in:
6
.github/workflows/gcp-deploy-frontend.yaml
vendored
6
.github/workflows/gcp-deploy-frontend.yaml
vendored
@@ -177,7 +177,11 @@ jobs:
|
||||
--set-env-vars GCAL_PRIVATE_KEY="${{secrets.GCAL_PRIVATE_KEY}}" \
|
||||
--set-env-vars GCAL_PROJECT_NUMBER="${{secrets.GCAL_PROJECT_NUMBER}}" \
|
||||
--set-env-vars GCAL_CLIENT_EMAIL="${{secrets.GCAL_CLIENT_EMAIL}}" \
|
||||
--set-env-vars NEXT_PUBLIC_GCAL_CALENDAR_ID="${{secrets.GCAL_CALENDAR_ID}}"
|
||||
--set-env-vars OPENSEA_API_KEY="${{secrets.OPENSEA_API_KEY}}" \
|
||||
--set-env-vars NEXT_PUBLIC_GCAL_CALENDAR_ID="${{secrets.GCAL_CALENDAR_ID}}" \
|
||||
--set-env-vars NEXT_PUBLIC_GOOGLE_ANALYTICS_ID="${{secrets.GOOGLE_ANALYTICS_ID}}" \
|
||||
--set-env-vars NEXT_PUBLIC_YOUTUBE_API_KEY="${{secrets.YOUTUBE_API_KEY}}"
|
||||
|
||||
|
||||
finish-deployment:
|
||||
name: Finish Deployment
|
||||
|
||||
@@ -1,362 +0,0 @@
|
||||
name: Update Deployment on Cloud Run
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
cache_key:
|
||||
description: Optional cache key component to force invalidation of the build cache.
|
||||
required: false
|
||||
default: ""
|
||||
push:
|
||||
branches:
|
||||
- feature/composedb
|
||||
|
||||
env:
|
||||
# This controls whether the Next.js runs in development or
|
||||
# production mode. For debugging test instance only bugs.
|
||||
FRONTEND_TARGET: production # development
|
||||
PROJECT_ID: metagame-thegame
|
||||
REGISTRY_REGION: us-east4
|
||||
REGISTRY_REPO: thegame
|
||||
DEPLOYMENT_DOMAIN: a.run.app
|
||||
CLOUDRUN_SUFFIX: mjhnbmqqna-uk
|
||||
DEPLOYMENT_NAME: test-composedb
|
||||
DB_NAME: hasura-pr-1493
|
||||
BACKEND_SERVICE: backend-composedb
|
||||
FRONTEND_SERVICE: frontend-composedb
|
||||
BACKEND_PORT: 4000
|
||||
HASURA_PORT: 8080
|
||||
FRONTEND_PORT: 3000
|
||||
HASURA_SECRET: metagame_secret
|
||||
APP_ENV: development
|
||||
GOOGLE_CAL_PROJECT_NUMBER: 510169944888
|
||||
GOOGLE_CAL_CLIENT_EMAIL: metagamecalwebsite@metagamecal.iam.gserviceaccount.com
|
||||
GOOGLE_CAL_CALENDAR_ID: nih59ktgafmm64ed4qk6ue8vv4
|
||||
|
||||
jobs:
|
||||
start-deployment:
|
||||
name: Generate Deployment Start Message
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
deployment_id: ${{steps.create-message.outputs.deployment_id}}
|
||||
|
||||
steps:
|
||||
- name: Start Deployment
|
||||
uses: bobheadxi/deployments@v1
|
||||
id: create-message
|
||||
with:
|
||||
step: start
|
||||
token: ${{github.token}}
|
||||
env: ${{env.DEPLOYMENT_NAME}}
|
||||
desc: "Test instance deployment for PR #${{github.event.number}} of ${{github.event.pull_request.head.label}} by ${{github.event.pull_request.user.login}}"
|
||||
ref: ${{github.head_ref}}
|
||||
auto_inactive: false
|
||||
logs: https://github.com/${{github.repository}}/commit/${{github.event.after}}/checks
|
||||
|
||||
cancel-previous:
|
||||
name: Cancel Existing Runs
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Cancel Existing Runs
|
||||
uses: styfle/cancel-workflow-action@0.10.0
|
||||
with:
|
||||
access_token: ${{github.token}}
|
||||
|
||||
env:
|
||||
name: Environment Variables
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
outputs:
|
||||
PROJECT_ID: ${{env.PROJECT_ID}}
|
||||
REGISTRY_REGION: ${{env.REGISTRY_REGION}}
|
||||
REGISTRY_REPO: ${{env.REGISTRY_REPO}}
|
||||
DEPLOYMENT_DOMAIN: ${{env.DEPLOYMENT_DOMAIN}}
|
||||
CLOUDRUN_SUFFIX: ${{env.CLOUDRUN_SUFFIX}}
|
||||
DB_NAME: ${{env.DB_NAME}}
|
||||
BACKEND_SERVICE: ${{env.BACKEND_SERVICE}}
|
||||
FRONTEND_SERVICE: ${{env.FRONTEND_SERVICE}}
|
||||
BACKEND_PORT: ${{env.BACKEND_PORT}}
|
||||
HASURA_PORT: ${{env.HASURA_PORT}}
|
||||
FRONTEND_PORT: ${{env.FRONTEND_PORT}}
|
||||
HASURA_SECRET: ${{env.HASURA_SECRET}}
|
||||
CLOUDRUN_REGION: ${{env.CLOUDRUN_REGION}}
|
||||
CLOUDSQL_INSTANCE_NAME: ${{env.CLOUDSQL_INSTANCE_NAME}}
|
||||
CLOUDSQL_CONNECTION_NAME: ${{env.CLOUDSQL_CONNECTION_NAME}}
|
||||
HASURA_SERVICE: ${{env.HASURA_SERVICE}}
|
||||
DOCKER_REGISTRY: ${{env.DOCKER_REGISTRY}}
|
||||
BACKEND_HOST: ${{env.BACKEND_HOST}}
|
||||
FRONTEND_URL: ${{env.FRONTEND_URL}}
|
||||
HASURA_HOST: ${{env.HASURA_HOST}}
|
||||
DOCKER_PATH: ${{env.DOCKER_PATH}}
|
||||
SC_SYNC_URL: ${{env.SC_SYNC_URL}}
|
||||
DB_HOST: ${{env.DB_HOST}}
|
||||
GRAPHQL_URL: ${{env.GRAPHQL_URL}}
|
||||
BACKEND_TAG: ${{env.BACKEND_TAG}}
|
||||
HASURA_TAG: ${{env.HASURA_TAG}}
|
||||
FRONTEND_TAG: ${{env.FRONTEND_TAG}}
|
||||
GOOGLE_CAL_PROJECT_NUMBER: ${{env.GOOGLE_CAL_PROJECT_NUMBER}}
|
||||
GOOGLE_CAL_CLIENT_EMAIL: ${{env.GOOGLE_CAL_CLIENT_EMAIL}}
|
||||
GOOGLE_CAL_CALENDAR_ID: ${{env.GOOGLE_CAL_CALENDAR_ID}}
|
||||
|
||||
steps:
|
||||
- name: First Interpolation of Variables
|
||||
id: first
|
||||
run: |
|
||||
echo "CLOUDRUN_REGION=${{env.REGISTRY_REGION}}" >> $GITHUB_ENV
|
||||
echo "CLOUDSQL_INSTANCE_NAME=${{env.REGISTRY_REPO}}" >> $GITHUB_ENV
|
||||
echo "CLOUDSQL_CONNECTION_NAME=\
|
||||
${{env.PROJECT_ID}}:${{env.REGISTRY_REGION}}:${{env.REGISTRY_REPO}}" >> $GITHUB_ENV
|
||||
echo "HASURA_SERVICE=${{env.DB_NAME}}" >> $GITHUB_ENV
|
||||
echo "DOCKER_REGISTRY=${{env.REGISTRY_REGION}}-docker.pkg.dev" >> $GITHUB_ENV
|
||||
echo "BACKEND_HOST=\
|
||||
${{env.BACKEND_SERVICE}}-${{env.CLOUDRUN_SUFFIX}}.${{env.DEPLOYMENT_DOMAIN}}" >> $GITHUB_ENV
|
||||
echo "FRONTEND_URL=\
|
||||
https://${{env.FRONTEND_SERVICE}}-${{env.CLOUDRUN_SUFFIX}}.${{env.DEPLOYMENT_DOMAIN}}" >> $GITHUB_ENV
|
||||
|
||||
- name: Those Variables May Now Be Interpolated
|
||||
id: second
|
||||
run: |
|
||||
echo "HASURA_HOST=\
|
||||
${{env.HASURA_SERVICE}}-${{env.CLOUDRUN_SUFFIX}}.${{env.DEPLOYMENT_DOMAIN}}" >> $GITHUB_ENV
|
||||
echo "DOCKER_PATH=\
|
||||
${{env.DOCKER_REGISTRY}}/${{env.PROJECT_ID}}/${{env.REGISTRY_REPO}}" >> $GITHUB_ENV
|
||||
echo "SC_SYNC_URL=\
|
||||
https://${{env.BACKEND_HOST}}/actions/syncSourceCredAccounts?force=true" >> $GITHUB_ENV
|
||||
echo "DB_HOST=\
|
||||
/${{env.DB_NAME}}?host=/cloudsql/${{env.CLOUDSQL_CONNECTION_NAME}}" >> $GITHUB_ENV
|
||||
|
||||
- name: And That Result Again In Another Step
|
||||
id: third
|
||||
run: |
|
||||
echo "GRAPHQL_URL=\
|
||||
https://${{env.HASURA_HOST}}/v1/graphql" >> $GITHUB_ENV
|
||||
echo "BACKEND_TAG=\
|
||||
${{env.DOCKER_PATH}}/backend:composedb" >> $GITHUB_ENV
|
||||
echo "HASURA_TAG=\
|
||||
${{env.DOCKER_PATH}}/hasura:composedb" >> $GITHUB_ENV
|
||||
echo "FRONTEND_TAG=\
|
||||
${{env.DOCKER_PATH}}/frontend:composedb" >> $GITHUB_ENV
|
||||
|
||||
build-backend:
|
||||
name: Build Backend Container Image
|
||||
runs-on: ubuntu-latest
|
||||
needs: [env]
|
||||
|
||||
steps:
|
||||
- name: "Checkout: ${{github.event.pull_request.head.label}}"
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{github.event.pull_request.head.sha}}
|
||||
|
||||
- name: Set Up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: "Login to Registry: ${{needs.env.outputs.DOCKER_REGISTRY}}"
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{needs.env.outputs.DOCKER_REGISTRY}}
|
||||
username: _json_key
|
||||
password: ${{secrets.GCP_SA_KEY}}
|
||||
|
||||
- name: "Build & Push Container Image: ${{needs.env.outputs.BACKEND_TAG}}"
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
file: docker/backend/Dockerfile
|
||||
tags: ${{needs.env.outputs.BACKEND_TAG}}
|
||||
build-args: |
|
||||
GRAPHQL_URL=${{needs.env.outputs.GRAPHQL_URL}} \
|
||||
THE_GRAPH_API_TOKEN=${{secrets.THE_GRAPH_API_TOKEN}}
|
||||
push: true
|
||||
|
||||
deploy-backend:
|
||||
name: Deploy Backend
|
||||
runs-on: ubuntu-latest
|
||||
needs: [env, build-backend]
|
||||
|
||||
steps:
|
||||
- name: Set Up gcloud CLI
|
||||
uses: google-github-actions/setup-gcloud@v0.6.0
|
||||
with:
|
||||
project_id: ${{needs.env.outputs.PROJECT_ID}}
|
||||
service_account_key: ${{secrets.GCP_SA_KEY}}
|
||||
export_default_credentials: true
|
||||
|
||||
- name: "Deploy Container Image: ${{needs.env.outputs.BACKEND_TAG}}"
|
||||
run: |
|
||||
gcloud -q run deploy ${{needs.env.outputs.BACKEND_SERVICE}} \
|
||||
--image ${{needs.env.outputs.BACKEND_TAG}} \
|
||||
--region ${{needs.env.outputs.CLOUDRUN_REGION}} \
|
||||
--port ${{needs.env.outputs.BACKEND_PORT}} \
|
||||
--cpu 1 \
|
||||
--memory 768Mi \
|
||||
--ingress all \
|
||||
--allow-unauthenticated \
|
||||
--max-instances 1 \
|
||||
--set-env-vars HASURA_GRAPHQL_ADMIN_SECRET=${{needs.env.outputs.HASURA_SECRET}} \
|
||||
--set-env-vars GITHUB_API_TOKEN=${{secrets.GH_API_TOKEN}} \
|
||||
--set-env-vars SOURCECRED_LEDGER_BRANCH=master \
|
||||
--set-env-vars GRAPHQL_URL=${{needs.env.outputs.GRAPHQL_URL}} \
|
||||
--set-env-vars DISCORD_BOT_TOKEN=${{secrets.DISCORD_BOT_TOKEN}} \
|
||||
--set-env-vars THE_GRAPH_API_TOKEN=${{secrets.THE_GRAPH_API_TOKEN}} \
|
||||
--set-env-vars CERAMIC_URL=https://ceramic.metagame.wtf
|
||||
|
||||
build-hasura:
|
||||
name: Build Hasura Container Image
|
||||
runs-on: ubuntu-latest
|
||||
needs: [env]
|
||||
|
||||
steps:
|
||||
- name: "Checkout: ${{github.event.pull_request.head.label}}"
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{github.event.pull_request.head.sha}}
|
||||
|
||||
- name: Set Up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: "Login to Registry: ${{needs.env.outputs.DOCKER_REGISTRY}}"
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{needs.env.outputs.DOCKER_REGISTRY}}
|
||||
username: _json_key
|
||||
password: ${{secrets.GCP_SA_KEY}}
|
||||
|
||||
- name: "Build & Push Container Image: ${{needs.env.outputs.HASURA_TAG}}"
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
file: hasura/Dockerfile
|
||||
context: hasura
|
||||
tags: ${{needs.env.outputs.HASURA_TAG}}
|
||||
build-args: |
|
||||
BACKEND_HOST=${{needs.env.outputs.BACKEND_HOST}}
|
||||
BACKEND_PROTOCOL=https
|
||||
push: true
|
||||
|
||||
deploy-hasura:
|
||||
name: Deploy Hasura
|
||||
runs-on: ubuntu-latest
|
||||
needs: [env, build-hasura, deploy-backend]
|
||||
|
||||
env:
|
||||
user: ${{needs.env.outputs.DB_NAME}}
|
||||
pass: ${{secrets.DB_PASSWORD_COMPOSEDB}}
|
||||
host: ${{needs.env.outputs.DB_HOST}}
|
||||
|
||||
steps:
|
||||
- name: Set Up gcloud CLI
|
||||
uses: google-github-actions/setup-gcloud@v0.6.0
|
||||
with:
|
||||
project_id: ${{needs.env.outputs.PROJECT_ID}}
|
||||
service_account_key: ${{secrets.GCP_SA_KEY}}
|
||||
export_default_credentials: true
|
||||
|
||||
- name: "Deploy Container Image: ${{needs.env.outputs.HASURA_TAG}}"
|
||||
run: |
|
||||
gcloud -q run deploy ${{needs.env.outputs.HASURA_SERVICE}} \
|
||||
--image ${{needs.env.outputs.HASURA_TAG}} \
|
||||
--region ${{needs.env.outputs.CLOUDRUN_REGION}} \
|
||||
--port ${{needs.env.outputs.HASURA_PORT}} \
|
||||
--cpu 1 \
|
||||
--memory 512Mi \
|
||||
--ingress all \
|
||||
--allow-unauthenticated \
|
||||
--add-cloudsql-instances ${{needs.env.outputs.CLOUDSQL_CONNECTION_NAME}} \
|
||||
--max-instances 1 \
|
||||
--set-env-vars HASURA_GRAPHQL_DATABASE_URL=postgres://${{env.user}}:${{env.pass}}@${{env.host}} \
|
||||
--set-env-vars HASURA_GRAPHQL_ADMIN_SECRET=${{needs.env.outputs.HASURA_SECRET}} \
|
||||
--set-env-vars HASURA_GRAPHQL_SERVER_PORT=${{needs.env.outputs.HASURA_PORT}} \
|
||||
--set-env-vars HASURA_GRAPHQL_ENABLE_CONSOLE=true
|
||||
|
||||
build-frontend:
|
||||
name: Build Frontend Container Image
|
||||
runs-on: ubuntu-latest
|
||||
needs: [env, deploy-hasura]
|
||||
|
||||
steps:
|
||||
- name: "Checkout: ${{github.event.pull_request.head.label}}"
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{github.event.pull_request.head.sha}}
|
||||
|
||||
- name: Set Up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: "Login to Registry: ${{needs.env.outputs.DOCKER_REGISTRY}}"
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{needs.env.outputs.DOCKER_REGISTRY}}
|
||||
username: _json_key
|
||||
password: ${{secrets.GCP_SA_KEY}}
|
||||
|
||||
- name: "Build & Push Container Image: ${{needs.env.outputs.FRONTEND_TAG}}"
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
file: docker/frontend/Dockerfile
|
||||
tags: ${{needs.env.outputs.FRONTEND_TAG}}
|
||||
build-args: |
|
||||
TARGET=${{env.FRONTEND_TARGET}}
|
||||
APP_ENV=${{env.APP_ENV}}
|
||||
GRAPHQL_URL=${{needs.env.outputs.GRAPHQL_URL}}
|
||||
FRONTEND_URL=${{needs.env.outputs.FRONTEND_URL}}
|
||||
YOUTUBE_API_KEY=${{secrets.YOUTUBE_API_KEY}}
|
||||
IMGIX_TOKEN=${{secrets.IMGIX_TOKEN}}
|
||||
HONEYBADGER_API_KEY=${{secrets.HONEYBADGER_API_KEY}}
|
||||
USERBACK_TOKEN=${{secrets.USERBACK_TOKEN}}
|
||||
WEB3_STORAGE_TOKEN=${{secrets.WEB3_STORAGE_TOKEN}}
|
||||
OPENSEA_API_KEY=${{secrets.OPENSEA_API_KEY}}
|
||||
GOOGLE_CAL_API_KEY=${{secrets.GOOGLE_CAL_API_KEY}}
|
||||
GOOGLE_CAL_PRIVATE_KEY=${{secrets.GOOGLE_CAL_PRIVATE_KEY}}
|
||||
push: true
|
||||
|
||||
deploy-frontend:
|
||||
name: Deploy Frontend
|
||||
runs-on: ubuntu-latest
|
||||
needs: [env, build-frontend]
|
||||
|
||||
steps:
|
||||
- name: Authenticate to Google Cloud
|
||||
uses: google-github-actions/auth@v1.1.0
|
||||
with:
|
||||
project_id: ${{needs.env.outputs.PROJECT_ID}}
|
||||
credentials_json: ${{secrets.GCP_SA_KEY}}
|
||||
create_credentials_file: true
|
||||
|
||||
- name: Set Up gcloud CLI
|
||||
uses: google-github-actions/setup-gcloud@v1.1.0
|
||||
|
||||
- name: "Deploy Container Image: ${{needs.env.outputs.FRONTEND_SERVICE}}"
|
||||
# this is running a shell script of unknown provision that's failing
|
||||
# the deployment, however, isn't
|
||||
continue-on-error: true
|
||||
run: |
|
||||
gcloud -q run deploy ${{needs.env.outputs.FRONTEND_SERVICE}} \
|
||||
--image ${{needs.env.outputs.FRONTEND_TAG}} \
|
||||
--region ${{needs.env.outputs.CLOUDRUN_REGION}} \
|
||||
--port ${{needs.env.outputs.FRONTEND_PORT}} \
|
||||
--cpu 1 \
|
||||
--memory 512Mi \
|
||||
--ingress all \
|
||||
--max-instances 1 \
|
||||
--allow-unauthenticated
|
||||
|
||||
finish-deployment:
|
||||
name: Finish Deployment
|
||||
runs-on: ubuntu-latest
|
||||
needs: [env, start-deployment, deploy-frontend]
|
||||
if: always()
|
||||
|
||||
env:
|
||||
result: ${{needs.deploy-frontend.result}}
|
||||
|
||||
steps:
|
||||
- name: Finish Deployment
|
||||
uses: bobheadxi/deployments@v1
|
||||
with:
|
||||
step: finish
|
||||
token: ${{github.token}}
|
||||
env: ${{env.DEPLOYMENT_NAME}}
|
||||
env_url: ${{needs.env.outputs.FRONTEND_URL}}
|
||||
status: ${{env.result == 'skipped' && 'cancelled' || env.result}}
|
||||
deployment_id: ${{needs.start-deployment.outputs.deployment_id}}
|
||||
6
.github/workflows/gcp-deploy-pr.yaml
vendored
6
.github/workflows/gcp-deploy-pr.yaml
vendored
@@ -516,7 +516,11 @@ jobs:
|
||||
--set-env-vars GCAL_PRIVATE_KEY="${{secrets.GCAL_PRIVATE_KEY}}" \
|
||||
--set-env-vars GCAL_PROJECT_NUMBER="${{secrets.GCAL_PROJECT_NUMBER}}" \
|
||||
--set-env-vars GCAL_CLIENT_EMAIL="${{secrets.GCAL_CLIENT_EMAIL}}" \
|
||||
--set-env-vars NEXT_PUBLIC_GCAL_CALENDAR_ID="${{secrets.GCAL_CALENDAR_ID}}"
|
||||
--set-env-vars NEXT_PUBLIC_GCAL_CALENDAR_ID="${{secrets.GCAL_CALENDAR_ID}}" \
|
||||
--set-env-vars OPENSEA_API_KEY="${{secrets.OPENSEA_API_KEY}}" \
|
||||
--set-env-vars NEXT_PUBLIC_GCAL_CALENDAR_ID="${{secrets.GCAL_CALENDAR_ID}}" \
|
||||
--set-env-vars NEXT_PUBLIC_GOOGLE_ANALYTICS_ID="${{secrets.GOOGLE_ANALYTICS_ID}}" \
|
||||
--set-env-vars NEXT_PUBLIC_YOUTUBE_API_KEY="${{secrets.YOUTUBE_API_KEY}}"
|
||||
|
||||
seed-db:
|
||||
name: Seed Database
|
||||
|
||||
Reference in New Issue
Block a user