From af23b7d1161562c4e1ad1aefe06a435590e0b720 Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Fri, 8 Nov 2024 14:16:44 -0600 Subject: [PATCH 1/6] Update clone-staging.yaml --- .github/workflows/clone-staging.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/clone-staging.yaml b/.github/workflows/clone-staging.yaml index 790246328..227fadc9e 100644 --- a/.github/workflows/clone-staging.yaml +++ b/.github/workflows/clone-staging.yaml @@ -8,8 +8,8 @@ on: workflow_dispatch: env: - DESTINATION_ENVIRONMENT: ms - SOURCE_ENVIRONMENT: staging + DESTINATION_ENVIRONMENT: staging + SOURCE_ENVIRONMENT: stable jobs: From 321052d2d21702cae4f61b12dc4fb552c9688ce3 Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Fri, 8 Nov 2024 14:20:29 -0600 Subject: [PATCH 2/6] Update and rename clone-staging.yaml to clone-db.yaml --- .github/workflows/{clone-staging.yaml => clone-db.yaml} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename .github/workflows/{clone-staging.yaml => clone-db.yaml} (92%) diff --git a/.github/workflows/clone-staging.yaml b/.github/workflows/clone-db.yaml similarity index 92% rename from .github/workflows/clone-staging.yaml rename to .github/workflows/clone-db.yaml index 227fadc9e..0e00cdee1 100644 --- a/.github/workflows/clone-staging.yaml +++ b/.github/workflows/clone-db.yaml @@ -1,4 +1,4 @@ -name: Clone Staging Database +name: Clone Stable Database on: schedule: @@ -16,8 +16,8 @@ jobs: clone-database: runs-on: ubuntu-24.04 env: - CF_USERNAME: ${{ secrets.CF_MS_USERNAME }} - CF_PASSWORD: ${{ secrets.CF_MS_PASSWORD }} + CF_USERNAME: ${{ secrets.CF_STAGING_USERNAME }} + CF_PASSWORD: ${{ secrets.CF_STAGING_PASSWORD }} steps: - name: Clone Database run: | From 5e96cec5129722c7bd923d99e86dd293eae1f089 Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Wed, 13 Nov 2024 09:33:45 -0600 Subject: [PATCH 3/6] Apply suggestions from code review Co-authored-by: Alysia Broddrick <109625347+abroddrick@users.noreply.github.com> --- .github/workflows/clone-db.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/clone-db.yaml b/.github/workflows/clone-db.yaml index 0e00cdee1..033d37d98 100644 --- a/.github/workflows/clone-db.yaml +++ b/.github/workflows/clone-db.yaml @@ -1,3 +1,6 @@ +# This workflow runs at the top of every hour and can be manually run as needed +# The workflow will copy the database from stable (production) to our staging sandbox. + name: Clone Stable Database on: @@ -8,7 +11,9 @@ on: workflow_dispatch: env: +# sandbox receiving the cloned db DESTINATION_ENVIRONMENT: staging +# sandbox we are cloning SOURCE_ENVIRONMENT: stable @@ -16,6 +21,7 @@ jobs: clone-database: runs-on: ubuntu-24.04 env: + # must be the github secrets for the receiving sandbox CF_USERNAME: ${{ secrets.CF_STAGING_USERNAME }} CF_PASSWORD: ${{ secrets.CF_STAGING_PASSWORD }} steps: From dc2ade28512b1c40ae9d797994fa61b53cae3c51 Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Wed, 13 Nov 2024 09:38:26 -0600 Subject: [PATCH 4/6] Additional review comments. --- .github/workflows/clone-db.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/clone-db.yaml b/.github/workflows/clone-db.yaml index 033d37d98..3e427b780 100644 --- a/.github/workflows/clone-db.yaml +++ b/.github/workflows/clone-db.yaml @@ -1,5 +1,7 @@ # This workflow runs at the top of every hour and can be manually run as needed # The workflow will copy the database from stable (production) to our staging sandbox. +# This workflow may fail if changes to the database schema make objects in stable +# incompatible with staging. This should resolve once both schemas match again. name: Clone Stable Database From c3fb2dd99c35d11f5526667baf418476cfe74edc Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Thu, 14 Nov 2024 10:24:21 -0600 Subject: [PATCH 5/6] Update clone-db.yaml --- .github/workflows/clone-db.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/clone-db.yaml b/.github/workflows/clone-db.yaml index 3e427b780..f8af7b7e8 100644 --- a/.github/workflows/clone-db.yaml +++ b/.github/workflows/clone-db.yaml @@ -50,6 +50,11 @@ jobs: # clone from source to destination cf target -s $SOURCE_ENVIRONMENT cg-manage-rds clone getgov-$SOURCE_ENVIRONMENT-database getgov-$DESTINATION_ENVIRONMENT-database + + # load fixtures in destination + cf target -s $DESTINATION_ENVIRONMENT + cf run-task getgov-staging --command 'python manage.py load' --name fixtures + - name: Cleanup if: always() run: cf unshare-service getgov-$DESTINATION_ENVIRONMENT-database -s $SOURCE_ENVIRONMENT -f From a3ffae28ecf3205ee0cd9f83732e35b385d6bb45 Mon Sep 17 00:00:00 2001 From: Matt-Spence Date: Thu, 14 Nov 2024 12:39:48 -0600 Subject: [PATCH 6/6] Update clone-db.yaml --- .github/workflows/clone-db.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/clone-db.yaml b/.github/workflows/clone-db.yaml index f8af7b7e8..7989fa34f 100644 --- a/.github/workflows/clone-db.yaml +++ b/.github/workflows/clone-db.yaml @@ -50,10 +50,15 @@ jobs: # clone from source to destination cf target -s $SOURCE_ENVIRONMENT cg-manage-rds clone getgov-$SOURCE_ENVIRONMENT-database getgov-$DESTINATION_ENVIRONMENT-database - - # load fixtures in destination - cf target -s $DESTINATION_ENVIRONMENT - cf run-task getgov-staging --command 'python manage.py load' --name fixtures + + - name: Load Fixtures + uses: cloud-gov/cg-cli-tools@main + with: + cf_username: ${{ secrets.CF_STAGING_USERNAME }} + cf_password: ${{ secrets.CF_STAGING_PASSWORD }} + cf_org: cisa-dotgov + cf_space: ${{ env.DESTINATION_ENVIRONMENT }} + cf_command: "run-task getgov-staging --command 'python manage.py load' --name fixtures" - name: Cleanup if: always()