Skip to content

Fix Twilio signature validation behind reverse proxy (#5541) #239

Fix Twilio signature validation behind reverse proxy (#5541)

Fix Twilio signature validation behind reverse proxy (#5541) #239

name: Auto Deploy Backend to Development
on:
push:
branches: [ "main" ]
paths:
- 'backend/**'
env:
SERVICE: backend
REGION: us-central1
jobs:
deploy:
environment: development
permissions:
contents: 'read'
id-token: 'write'
runs-on: ubuntu-latest-m
steps:
# To workaround "no space left on device" issue of GitHub-hosted runner
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache
- name: Checkout
uses: actions/checkout@v4
- name: Google Auth
id: auth
uses: 'google-github-actions/auth@v2'
with:
credentials_json: ${{ secrets.GCP_CREDENTIALS }}
- name: Login to GCR
run: gcloud auth configure-docker
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Google Service Account
run: echo "${{ secrets.GCP_SERVICE_ACCOUNT }}" | base64 -d > ./backend/google-credentials.json
- name: Build and Push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ./backend/Dockerfile
push: true
tags: gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}:latest
cache-from: type=registry,ref=gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}:buildcache
cache-to: type=registry,ref=gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}:buildcache,mode=max
- name: Deploy ${{ env.SERVICE }} to Cloud Run
id: deploy-backend
uses: google-github-actions/deploy-cloudrun@v2
with:
service: ${{ env.SERVICE }}
region: ${{ env.REGION }}
image: gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}
env_vars: |
GOOGLE_CLOUD_PROJECT=based-hardware
secrets: |
SERVICE_ACCOUNT_JSON=SERVICE_ACCOUNT_JSON:latest
ENCRYPTION_SECRET=ENCRYPTION_SECRET:latest
- name: Deploy ${{ env.SERVICE }}-sync to Cloud Run
id: deploy-backend-sync
uses: google-github-actions/deploy-cloudrun@v2
with:
service: ${{ env.SERVICE }}-sync
region: ${{ env.REGION }}
image: gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}
env_vars: |
GOOGLE_CLOUD_PROJECT=based-hardware
secrets: |
SERVICE_ACCOUNT_JSON=SERVICE_ACCOUNT_JSON:latest
ENCRYPTION_SECRET=ENCRYPTION_SECRET:latest
- name: Connect to GKE cluster
run: |
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
sudo apt-get update && sudo apt-get install google-cloud-cli-gke-gcloud-auth-plugin -y
gcloud container clusters get-credentials ${{ vars.GKE_CLUSTER }} --region ${{ env.REGION }} --project ${{ vars.GCP_PROJECT_ID }}
- name: Install Helm
uses: azure/setup-helm@v3
- name: Deploy ${{ env.SERVICE }}-listen to GKE
run: |
helm -n ${{ vars.ENV }}-omi-backend upgrade --install \
${{ vars.ENV }}-omi-backend-listen \
./backend/charts/backend-listen \
-f ./backend/charts/backend-listen/${{ vars.ENV }}_omi_backend_listen_values.yaml
- name: Deploy ${{ env.SERVICE }}-integration to Cloud Run
id: deploy-backend-integration
uses: google-github-actions/deploy-cloudrun@v2
with:
service: ${{ env.SERVICE }}-integration
region: ${{ env.REGION }}
image: gcr.io/${{ vars.GCP_PROJECT_ID }}/${{ env.SERVICE }}
env_vars: |
GOOGLE_CLOUD_PROJECT=based-hardware
secrets: |
SERVICE_ACCOUNT_JSON=SERVICE_ACCOUNT_JSON:latest
ENCRYPTION_SECRET=ENCRYPTION_SECRET:latest
- name: Show Output
run: echo "Backend deployed to development environment"