mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-24 03:30:50 +02:00
initial attempt at a clone workflow
This commit is contained in:
parent
772fc17012
commit
e2287e9c4e
1 changed files with 62 additions and 0 deletions
62
.github/workflows/clone-staging.yaml
vendored
Normal file
62
.github/workflows/clone-staging.yaml
vendored
Normal file
|
@ -0,0 +1,62 @@
|
|||
name: Clone Sandbox Database
|
||||
|
||||
on:
|
||||
# schedule:
|
||||
# # Run daily at 2:00 PM EST
|
||||
# - cron: '0 19 * * *'
|
||||
# Allow manual triggering
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
DESTINATION_ENVIRONMENT: ms
|
||||
SOURCE_ENVIRONMENT: staging
|
||||
|
||||
jobs:
|
||||
clone-database:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Install Cloud Foundry CLI
|
||||
uses: cloud-gov/cg-cli-tools@main
|
||||
|
||||
- name: Login to Cloud Foundry
|
||||
env:
|
||||
CF_USERNAME: CF_${{ env.DESTINATION_ENVIRONMENT }}_USERNAME
|
||||
CF_PASSWORD: CF_${{ env.DESTINATION_ENVIRONMENT }}_PASSWORD
|
||||
with:
|
||||
cf_username: ${{ secrets[env.CF_USERNAME] }}
|
||||
cf_password: ${{ secrets[env.CF_PASSWORD] }}
|
||||
cf_org: cisa-dotgov
|
||||
cf_space: ${{ env.DESTINATION_ENVIRONMENT }}
|
||||
run: |
|
||||
cf login -a api.fr.cloud.gov -u $CF_USERNAME -p $CF_PASSWORD -o cisa-dotgov -s ${{ env.DESTINATION_ENVIRONMENT }}
|
||||
|
||||
- name: Install manage-rds tool
|
||||
run: |
|
||||
pip install git+https://github.com/cloud-gov/cg-manage-rds.git
|
||||
|
||||
- name: Clone Database
|
||||
run: |
|
||||
# share the sandbox db with the Staging space
|
||||
cf share-service getgov-${{ env.DESTINATION_ENVIRONMENT }}-database -s ${{ env.SOURCE_ENVIRONMENT }}
|
||||
|
||||
# target the Staging space
|
||||
cf target -s ${{ env.SOURCE_ENVIRONMENT }}
|
||||
|
||||
# clone from staging to the sandbox
|
||||
cg-manage-rds clone getgov-${{ env.SOURCE_ENVIRONMENT }}-database getgov-${{ env.DESTINATION_ENVIRONMENT }}-database
|
||||
|
||||
# delete the local copy of the backup that gets created
|
||||
rm db_backup.sql
|
||||
|
||||
# switch to the target sandbox space
|
||||
cf target -s ${{ env.DESTINATION_ENVIRONMENT }}
|
||||
|
||||
# un-share the sandbox from Staging
|
||||
cf unshare-service getgov-${{ env.DESTINATION_ENVIRONMENT }}-database -s ${{ env.SOURCE_ENVIRONMENT }}
|
||||
|
||||
- name: Logout from Cloud Foundry
|
||||
if: always()
|
||||
run: cf logout
|
Loading…
Add table
Add a link
Reference in a new issue