Skip to content

Commit

Permalink
Using db connection uri instead of creating it
Browse files Browse the repository at this point in the history
  • Loading branch information
Sachinbisht27 committed Apr 23, 2024
1 parent 7b8a687 commit 0b74ceb
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 46 deletions.
24 changes: 12 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ jobs:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/develop'
steps:
- uses: 'actions/checkout@v3'
- uses: 'actions/checkout@v4'
- id: 'auth'
name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'

Expand All @@ -25,7 +25,7 @@ jobs:
echo "$GOOGLE_APPLICATION_CREDENTIALS" > credentials.json
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v1'
uses: 'google-github-actions/setup-gcloud@v2'
with:
version: '>= 363.0.0'
- name: 'Use gcloud CLI'
Expand All @@ -47,7 +47,7 @@ jobs:
- name: Run Flask Migration
env:
SQLALCHEMY_DATABASE_URI_GITHUB_ACTION: ${{ secrets.SQLALCHEMY_DATABASE_URI }}
SQLALCHEMY_DATABASE_URI: ${{ secrets.SQLALCHEMY_DATABASE_URI }}
FLASK_APP: ${{ secrets.FLASK_APP }}
FLASK_ENV: ${{ secrets.FLASK_APP_STAGING }}
run: |
Expand All @@ -57,7 +57,7 @@ jobs:
run: |
pkill cloud_sql_proxy
- name: 'Deploy a gen 2 cloud function'
- name: 'Deploying whatsapp webhook analytics function'
run: |
gcloud functions deploy whatsapp-webhook-analytics-staging \
--gen2 \
Expand All @@ -67,16 +67,16 @@ jobs:
--entry-point=handle_payload \
--memory=256MB \
--timeout=30s \
--set-env-vars=FLASK_APP=${{ secrets.FLASK_APP_STAGING }},DB_USER=${{ secrets.DB_USER }},DB_PASSWORD=${{ secrets.DB_PASSWORD }},DB_NAME=${{ secrets.DB_NAME }},DB_PORT=${{ secrets.DB_PORT }},CONNECTION_NAME=${{ secrets.CONNECTION_NAME }},LOGGING_LEVEL=${{ secrets.LOGGING_LEVEL }}
--set-env-vars=FLASK_APP=${{ secrets.FLASK_APP_STAGING }},LOGGING_LEVEL=${{ secrets.LOGGING_LEVEL }},SQLALCHEMY_DATABASE_URI=${{ secrets.SQLALCHEMY_DATABASE_URI }}
deploy-production:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: 'actions/checkout@v3'
- uses: 'actions/checkout@v4'
- id: 'auth'
name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v1'
uses: 'google-github-actions/auth@v2'
with:
credentials_json: '${{ secrets.GCP_CREDENTIALS }}'

Expand All @@ -87,7 +87,7 @@ jobs:
echo "$GOOGLE_APPLICATION_CREDENTIALS" > credentials.json
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v1'
uses: 'google-github-actions/setup-gcloud@v2'
with:
version: '>= 363.0.0'
- name: 'Use gcloud CLI'
Expand All @@ -109,7 +109,7 @@ jobs:
- name: Run Flask Migration
env:
SQLALCHEMY_DATABASE_URI_GITHUB_ACTION: ${{ secrets.SQLALCHEMY_DATABASE_URI_PROD }}
SQLALCHEMY_DATABASE_URI: ${{ secrets.SQLALCHEMY_DATABASE_URI_PROD }}
FLASK_APP: ${{ secrets.FLASK_APP }}
FLASK_ENV: ${{ secrets.FLASK_APP_PROD }}
run: |
Expand All @@ -119,7 +119,7 @@ jobs:
run: |
pkill cloud_sql_proxy
- name: 'Deploy a gen 2 cloud function'
- name: 'Deploying whatsapp webhook analytics function'
run: |
gcloud functions deploy whatsapp-webhook-analytics-prod \
--gen2 \
Expand All @@ -129,4 +129,4 @@ jobs:
--entry-point=handle_payload \
--memory=256MB \
--timeout=30s \
--set-env-vars=FLASK_APP=${{ secrets.FLASK_APP_PROD }},DB_USER=${{ secrets.DB_USER_PROD }},DB_PASSWORD=${{ secrets.DB_PASSWORD_PROD }},DB_NAME=${{ secrets.DB_NAME_PROD }},DB_PORT=${{ secrets.DB_PORT }},CONNECTION_NAME=${{ secrets.CONNECTION_NAME_PROD }},LOGGING_LEVEL=${{ secrets.LOGGING_LEVEL }}
--set-env-vars=FLASK_APP=${{ secrets.FLASK_APP_PROD }},LOGGING_LEVEL=${{ secrets.LOGGING_LEVEL }},SQLALCHEMY_DATABASE_URI=${{ secrets.SQLALCHEMY_DATABASE_URI_PROD }}
35 changes: 1 addition & 34 deletions config.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,6 @@

FLASK_APP = os.environ.get("FLASK_APP", "development")

if FLASK_APP == "development":
from dotenv import load_dotenv

load_dotenv()


# Database configuration
POSTGRES = {
"user": os.environ.get("DB_USER"),
"password": os.environ.get("DB_PASSWORD"),
"database": os.environ.get("DB_NAME"),
"host": os.environ.get("DB_HOST"),
"port": os.environ.get("DB_PORT"),
"conn_str": os.environ.get("CONNECTION_NAME"),
}

SQLALCHEMY_DATABASE_URI = (
"postgresql://%(user)s:%(password)s@%(host)s:%(port)s/%(database)s"
% POSTGRES
)

# For socket based connection
if FLASK_APP in ("production", "staging"):
SQLALCHEMY_DATABASE_URI = (
"postgresql://%(user)s:%(password)s@/%(database)s?host=%(conn_str)s/"
% POSTGRES
)

github_action_db_url = os.environ.get(
"SQLALCHEMY_DATABASE_URI_GITHUB_ACTION", None
)

if github_action_db_url:
SQLALCHEMY_DATABASE_URI = github_action_db_url
SQLALCHEMY_DATABASE_URI = os.environ.get("SQLALCHEMY_DATABASE_URI", None)

LOGGING_LEVEL = os.environ.get("LOGGING_LEVEL", "DEBUG")

0 comments on commit 0b74ceb

Please sign in to comment.