From a9d65ed6f529cfd36f4c2e1c251034733b926186 Mon Sep 17 00:00:00 2001 From: cbolles Date: Fri, 17 May 2024 13:10:05 -0400 Subject: [PATCH 1/6] Begin adding in actions for EU prod client deployment --- .github/workflows/client.yaml | 55 +++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/.github/workflows/client.yaml b/.github/workflows/client.yaml index dd0fff70..b964413b 100644 --- a/.github/workflows/client.yaml +++ b/.github/workflows/client.yaml @@ -108,6 +108,61 @@ jobs: workload_identity_provider: ${{ secrets.GCP_STAGING_ID_PROVIDER }} service_account: ${{ secrets.STAGING_GCP_SERVICE_ACCOUNT }} + - name: Upload Files + uses: 'google-github-actions/upload-cloud-storage@v2' + with: + path: packages/client/dist/ + destination: ${{ secrets.GCP_FRONTEND_BUCKET }} + parent: false + + eu-prod-deploy: + runs-on: ubuntu-latest + name: Deploy to EU Prod + needs: [lint, build] + permissions: + contents: 'read' + id-token: 'write' + if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') + defaults: + run: + working-directory: packages/client + + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + # App Engine deploy logic does not play well with + - name: Cleanup + run: rm package-lock.json + + - name: Setup NodeJS + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Capture Environment Variables + run: | + echo VITE_AUTH_LOGIN_URL=${{ secrets.STAGING_AUTH_URL }} > .env + echo VITE_AUTH_PROJECT_ID=${{ secrets.STAGING_AUTH_PROJECT_ID }} >> .env + echo VITE_GRAPHQL_ENDPOINT=${{ secrets.STAGING_GRAPHQL_ENDPOINT }} >> .env + echo VITE_ASL_LEXICON_ID=${{ secrets.STAGING_ASL_LEXICON_ID }} >> .env + echo VITE_NAME=${{ secrets.STAGING_ASL_LEX_NAME }} >> .env + echo VITE_AUTH_API_KEY=${{ secrets.STAGING_AUTH_API_KEY }} >> .env + echo VITE_AUTH_DOMAIN=${{ secrets.STAGING_AUTH_DOMAIN }} >> .env + + - name: NPM Install + run: npm install + shell: bash + + - name: Build + run: npm run build + + - name: GCP Auth + uses: 'google-github-actions/auth@v2' + with: + project_id: ${{ secrets.GCP_STAGING_PROJECT_ID }} + workload_identity_provider: ${{ secrets.GCP_STAGING_ID_PROVIDER }} + service_account: ${{ secrets.STAGING_GCP_SERVICE_ACCOUNT }} - name: Upload Files uses: 'google-github-actions/upload-cloud-storage@v2' From 131ee7a82f3a9bc022724b0b3505a5215e7a948a Mon Sep 17 00:00:00 2001 From: cbolles Date: Mon, 20 May 2024 10:01:07 -0400 Subject: [PATCH 2/6] Swap out environment variables for EU prod --- .github/workflows/client.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/client.yaml b/.github/workflows/client.yaml index b964413b..f74fcc67 100644 --- a/.github/workflows/client.yaml +++ b/.github/workflows/client.yaml @@ -122,7 +122,7 @@ jobs: permissions: contents: 'read' id-token: 'write' - if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') + if: startsWith(github.ref, 'refs/tags/v') defaults: run: working-directory: packages/client @@ -142,13 +142,13 @@ jobs: - name: Capture Environment Variables run: | - echo VITE_AUTH_LOGIN_URL=${{ secrets.STAGING_AUTH_URL }} > .env - echo VITE_AUTH_PROJECT_ID=${{ secrets.STAGING_AUTH_PROJECT_ID }} >> .env - echo VITE_GRAPHQL_ENDPOINT=${{ secrets.STAGING_GRAPHQL_ENDPOINT }} >> .env - echo VITE_ASL_LEXICON_ID=${{ secrets.STAGING_ASL_LEXICON_ID }} >> .env - echo VITE_NAME=${{ secrets.STAGING_ASL_LEX_NAME }} >> .env - echo VITE_AUTH_API_KEY=${{ secrets.STAGING_AUTH_API_KEY }} >> .env - echo VITE_AUTH_DOMAIN=${{ secrets.STAGING_AUTH_DOMAIN }} >> .env + echo VITE_AUTH_LOGIN_URL=${{ secrets.PROD_EU_AUTH_URL }} > .env + echo VITE_AUTH_PROJECT_ID=${{ secrets.PROD_EU_AUTH_PROJECT_ID }} >> .env + echo VITE_GRAPHQL_ENDPOINT=${{ secrets.PROD_EU_GRAPHQL_ENDPOINT }} >> .env + echo VITE_ASL_LEXICON_ID=${{ secrets.PROD_EU_ASL_LEXICON_ID }} >> .env + echo VITE_NAME=${{ secrets.PROD_EU_ASL_LEX_NAME }} >> .env + echo VITE_AUTH_API_KEY=${{ secrets.PROD_EU_AUTH_API_KEY }} >> .env + echo VITE_AUTH_DOMAIN=${{ secrets.PROD_EU_AUTH_DOMAIN }} >> .env - name: NPM Install run: npm install @@ -160,13 +160,13 @@ jobs: - name: GCP Auth uses: 'google-github-actions/auth@v2' with: - project_id: ${{ secrets.GCP_STAGING_PROJECT_ID }} - workload_identity_provider: ${{ secrets.GCP_STAGING_ID_PROVIDER }} - service_account: ${{ secrets.STAGING_GCP_SERVICE_ACCOUNT }} + project_id: ${{ secrets.GCP_PROD_EU_PROJECT_ID }} + workload_identity_provider: ${{ secrets.GCP_PROD_EU_ID_PROVIDER }} + service_account: ${{ secrets.PROD_EU_GCP_SERVICE_ACCOUNT }} - name: Upload Files uses: 'google-github-actions/upload-cloud-storage@v2' with: path: packages/client/dist/ - destination: ${{ secrets.GCP_FRONTEND_BUCKET }} + destination: ${{ secrets.PROD_EU_GCP_FRONTEND_BUCKET }} parent: false From 0f8c58b3f8d1c5957b38d7cd71052f04a78c35d0 Mon Sep 17 00:00:00 2001 From: cbolles Date: Mon, 20 May 2024 10:03:01 -0400 Subject: [PATCH 3/6] Gateway prod deployment --- .github/workflows/gateway.yaml | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/.github/workflows/gateway.yaml b/.github/workflows/gateway.yaml index 2d62173e..6666ccda 100644 --- a/.github/workflows/gateway.yaml +++ b/.github/workflows/gateway.yaml @@ -96,3 +96,38 @@ jobs: SIGNLAB_URI=${{ secrets.STAGING_SIGNLAB_URI }} LEX_URI=${{ secrets.STAGING_LEX_URI }} AUTH_URI=${{ secrets.STAGING_AUTH_URI }} + + eu-prod-deploy: + runs-on: ubuntu-latest + name: Deploy to Staging + needs: [lint, build] + permissions: + contents: 'read' + id-token: 'write' + if: startsWith(github.ref, 'refs/tags/v') + defaults: + run: + working-directory: packages/gateway + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + # App Engine deploy logic does not play well with + - name: Cleanup + run: rm package-lock.json + + - name: GCP Auth + uses: 'google-github-actions/auth@v2' + with: + project_id: ${{ secrets.GCP_PROD_EU_PROJECT_ID }} + workload_identity_provider: ${{ secrets.GCP_PROD_EU_ID_PROVIDER }} + service_account: ${{ secrets.PROD_EU_GCP_SERVICE_ACCOUNT }} + + - name: Deploy to Staging + uses: 'google-github-actions/deploy-appengine@v2' + with: + working_directory: 'packages/gateway' + env_vars: |- + SIGNLAB_URI=${{ secrets.PROD_EU_SIGNLAB_URI }} + LEX_URI=${{ secrets.PROD_EU_LEX_URI }} + AUTH_URI=${{ secrets.PROD_EU_AUTH_URI }} From 2f1de9390fae8d01457e22caef5540ac69084a30 Mon Sep 17 00:00:00 2001 From: cbolles Date: Mon, 20 May 2024 10:17:02 -0400 Subject: [PATCH 4/6] Server EU prod configuration --- .github/workflows/server.yaml | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/.github/workflows/server.yaml b/.github/workflows/server.yaml index 4fcc7bae..c5056875 100644 --- a/.github/workflows/server.yaml +++ b/.github/workflows/server.yaml @@ -97,3 +97,43 @@ jobs: CASBIN_MONGO_URI=${{ secrets.STAGING_CASBIN_MONGO_URI }} ZIP_JOB_NAME=${{ secrets.GCP_ZIP_JOB_STAGING }} GATEWAY_ENDPOINT=${{ secrets.STAGING_GRAPHQL_ENDPOINT }} + + staging-deploy: + runs-on: ubuntu-latest + name: Deploy to Staging + needs: [lint, build] + permissions: + contents: 'read' + id-token: 'write' + if: startsWith(github.ref, 'refs/tags/v') + defaults: + run: + working-directory: packages/server + + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + # App Engine deploy logic does not play well with + - name: Cleanup + run: rm package-lock.json + + - name: GCP Auth + uses: 'google-github-actions/auth@v2' + with: + project_id: ${{ secrets.GCP_PROD_EU_PROJECT_ID }} + workload_identity_provider: ${{ secrets.GCP_PROD_EU_ID_PROVIDER }} + service_account: ${{ secrets.PROD_EU_GCP_SERVICE_ACCOUNT }} + + + - name: Deploy to Staging + uses: 'google-github-actions/deploy-appengine@v2' + with: + working_directory: 'packages/server' + env_vars: |- + MONGO_URI=${{ secrets.PROD_EU_MONGO_URI }} + CASBIN_MONGO_URI=${{ secrets.PROD_EU_CASBIN_MONGO_URI }} + ZIP_JOB_NAME=${{ secrets.GCP_ZIP_JOB_PROD_EU }} + GATEWAY_ENDPOINT=${{ secrets.PROD_EU_GRAPHQL_ENDPOINT }} + + From 94bc81f440fd9f76d94ae1cba931f00ee14ee539 Mon Sep 17 00:00:00 2001 From: cbolles Date: Mon, 20 May 2024 10:18:25 -0400 Subject: [PATCH 5/6] Fix deployment name --- .github/workflows/server.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/server.yaml b/.github/workflows/server.yaml index c5056875..65cc20a0 100644 --- a/.github/workflows/server.yaml +++ b/.github/workflows/server.yaml @@ -98,7 +98,7 @@ jobs: ZIP_JOB_NAME=${{ secrets.GCP_ZIP_JOB_STAGING }} GATEWAY_ENDPOINT=${{ secrets.STAGING_GRAPHQL_ENDPOINT }} - staging-deploy: + eu-prod-deploy: runs-on: ubuntu-latest name: Deploy to Staging needs: [lint, build] @@ -125,7 +125,6 @@ jobs: workload_identity_provider: ${{ secrets.GCP_PROD_EU_ID_PROVIDER }} service_account: ${{ secrets.PROD_EU_GCP_SERVICE_ACCOUNT }} - - name: Deploy to Staging uses: 'google-github-actions/deploy-appengine@v2' with: From 1657faf72c17eb5b295205d05cd8a5d2577e7945 Mon Sep 17 00:00:00 2001 From: cbolles Date: Mon, 20 May 2024 11:30:32 -0400 Subject: [PATCH 6/6] Remove old auth login url env variables --- .github/workflows/client.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/client.yaml b/.github/workflows/client.yaml index f74fcc67..046121c0 100644 --- a/.github/workflows/client.yaml +++ b/.github/workflows/client.yaml @@ -86,8 +86,6 @@ jobs: - name: Capture Environment Variables run: | - echo VITE_AUTH_LOGIN_URL=${{ secrets.STAGING_AUTH_URL }} > .env - echo VITE_AUTH_PROJECT_ID=${{ secrets.STAGING_AUTH_PROJECT_ID }} >> .env echo VITE_GRAPHQL_ENDPOINT=${{ secrets.STAGING_GRAPHQL_ENDPOINT }} >> .env echo VITE_ASL_LEXICON_ID=${{ secrets.STAGING_ASL_LEXICON_ID }} >> .env echo VITE_NAME=${{ secrets.STAGING_ASL_LEX_NAME }} >> .env @@ -142,8 +140,6 @@ jobs: - name: Capture Environment Variables run: | - echo VITE_AUTH_LOGIN_URL=${{ secrets.PROD_EU_AUTH_URL }} > .env - echo VITE_AUTH_PROJECT_ID=${{ secrets.PROD_EU_AUTH_PROJECT_ID }} >> .env echo VITE_GRAPHQL_ENDPOINT=${{ secrets.PROD_EU_GRAPHQL_ENDPOINT }} >> .env echo VITE_ASL_LEXICON_ID=${{ secrets.PROD_EU_ASL_LEXICON_ID }} >> .env echo VITE_NAME=${{ secrets.PROD_EU_ASL_LEX_NAME }} >> .env