Skip to content

Commit bc788e5

Browse files
committed
Incrementally testing GH action.
1 parent 68f6cfa commit bc788e5

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

.github/workflows/duplicate-prod-db.yml

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ on:
88
jobs:
99
run-script:
1010
runs-on: ubuntu-latest
11+
env:
12+
SOURCE_PROJECT_ID: ${{ vars.PROD_MOBILITY_FEEDS_PROJECT_ID }}
13+
DEST_PROJECT_ID: ${{ vars.QA_MOBILITY_FEEDS_PROJECT_ID }}
14+
DUMP_BUCKET_NAME: "mobilitydata-database-dump-qa"
15+
BUCKET_PROJECT_ID: ${{ vars.QA_MOBILITY_FEEDS_PROJECT_ID }}
16+
GCP_REGION: ${{ vars.MOBILITY_FEEDS_REGION }}
17+
DB_INSTANCE_NAME: ${{ secrets.DB_INSTANCE_NAME }}
18+
DUMP_FILE_NAME: "prod-db-dump.sql"
19+
DATABASE_NAME: "MobilityDatabase"
1120

1221
steps:
1322
- name: Checkout code
@@ -19,12 +28,10 @@ jobs:
1928
with:
2029
credentials_json: ${{ secrets.PROD_GCP_MOBILITY_FEEDS_SA_KEY }}
2130

22-
- name: GCloud Setup 1
31+
- name: GCloud Setup PROD 1
2332
uses: google-github-actions/setup-gcloud@v2
2433

2534
- name: Get PROD SQL service account
26-
env:
27-
SOURCE_PROJECT_ID: ${{ vars.PROD_MOBILITY_FEEDS_PROJECT_ID }}
2835
run: |
2936
SERVICE_ACCOUNT=$(gcloud sql instances describe "mobilitydata-database-instance" --project=$SOURCE_PROJECT_ID --format="value(serviceAccountEmailAddress)")
3037
echo "SOURCE_SQL_SERVICE_ACCOUNT=$SERVICE_ACCOUNT" >> $GITHUB_ENV
@@ -39,13 +46,7 @@ jobs:
3946
- name: GCloud Setup 2
4047
uses: google-github-actions/setup-gcloud@v2
4148

42-
- name: Create DB dump bucket
43-
env:
44-
DEST_PROJECT_ID: ${{ vars.QA_MOBILITY_FEEDS_PROJECT_ID }}
45-
DUMP_BUCKET_NAME: "mobilitydata-database-dump-qa"
46-
BUCKET_PROJECT_ID: ${{ vars.QA_MOBILITY_FEEDS_PROJECT_ID }}
47-
GCP_REGION: ${{ vars.MOBILITY_FEEDS_REGION }}
48-
SQL_INSTANCE_NAME: ${{ secrets.DB_INSTANCE_NAME }}
49+
- name: Create DB dump bucket ans backup QA DB
4950
run: |
5051
BUCKET_PROJECT_ID=$DEST_PROJECT_ID
5152
@@ -61,8 +62,22 @@ jobs:
6162
gsutil iam ch serviceAccount:$SOURCE_SQL_SERVICE_ACCOUNT:objectCreator gs://$DUMP_BUCKET_NAME
6263
6364
# Get the service account for the QA DB and give read permission to the bucket
64-
DEST_SQL_SERVICE_ACCOUNT=$(gcloud sql instances describe $SQL_INSTANCE_NAME --project=$DEST_PROJECT_ID --format="value(serviceAccountEmailAddress)")
65+
DEST_SQL_SERVICE_ACCOUNT=$(gcloud sql instances describe $DB_INSTANCE_NAME --format="value(serviceAccountEmailAddress)")
6566
echo "Destination SQL Service Account: $DEST_SQL_SERVICE_ACCOUNT"
6667
6768
# Give read permission on the bucket to the destination sql instance
68-
gsutil iam ch serviceAccount:$DEST_SQL_SERVICE_ACCOUNT:objectViewer gs://$DUMP_BUCKET_NAME
69+
gsutil iam ch serviceAccount:$DEST_SQL_SERVICE_ACCOUNT:objectViewer gs://$DUMP_BUCKET_NAME
70+
71+
# Dump the QA database as a backup
72+
# According to chatgpt,
73+
# This is Google's recommended, safe method and doesn’t require direct access to the DB. It runs the export
74+
# in a way that avoids locking the database and works from GCP itself (so no traffic leaves GCP).
75+
gcloud sql export sql $DB_INSTANCE_NAME gs://$DUMP_BUCKET_NAME/qa-db-dump-backup.sql --database=$DATABASE_NAME --quiet
76+
77+
# - name: Authenticate to Google Cloud PROD project Again
78+
# uses: google-github-actions/auth@v2
79+
# with:
80+
# credentials_json: ${{ secrets.PROD_GCP_MOBILITY_FEEDS_SA_KEY }}
81+
#
82+
# - name: GCloud Setup PROD 1
83+
# uses: google-github-actions/setup-gcloud@v2

0 commit comments

Comments
 (0)