|
72 | 72 | python_version: '3.11' |
73 | 73 |
|
74 | 74 | jobs: |
75 | | -# db-schema-update: |
76 | | -# name: 'Database Schema Update' |
77 | | -# permissions: write-all |
78 | | -# runs-on: ubuntu-latest |
79 | | -# steps: |
80 | | -# - name: Checkout code |
81 | | -# uses: actions/checkout@v4 |
82 | | -# |
83 | | -# - name: Authenticate to Google Cloud QA/PROD |
84 | | -# uses: google-github-actions/auth@v2 |
85 | | -# with: |
86 | | -# credentials_json: ${{ secrets.DB_GCP_MOBILITY_FEEDS_SA_KEY }} |
87 | | -# |
88 | | -# - name: Google Cloud Setup |
89 | | -# uses: google-github-actions/setup-gcloud@v2 |
90 | | -# |
91 | | -# - name: Load secrets from 1Password |
92 | | -# uses: 1password/[email protected] |
93 | | -# with: |
94 | | -# export-env: true # Export loaded secrets as environment variables |
95 | | -# env: |
96 | | -# OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} |
97 | | -# GCP_FEED_SSH_USER: "op://rbiv7rvkkrsdlpcrz3bmv7nmcu/GCP_FEED_SSH_USER/username" |
98 | | -# GCP_FEED_BASTION_NAME: "op://rbiv7rvkkrsdlpcrz3bmv7nmcu/GCP_FEED_BASTION_NAME/username" |
99 | | -# GCP_FEED_BASTION_SSH_KEY: "op://rbiv7rvkkrsdlpcrz3bmv7nmcu/GCP_FEED_BASTION_SSH_KEY/private key" |
100 | | -# |
101 | | -# - name: Tunnel |
102 | | -# run: | |
103 | | -# mkdir -p ~/.ssh |
104 | | -# echo "${{ env.GCP_FEED_BASTION_SSH_KEY }}" > ~/.ssh/id_rsa |
105 | | -# chmod 600 ~/.ssh/id_rsa |
106 | | -# ./scripts/tunnel-create.sh -project_id ${{ inputs.PROJECT_ID }} -zone ${{ inputs.REGION }}-a -instance ${{ env.GCP_FEED_BASTION_NAME }}-${{ inputs.DB_ENVIRONMENT}} -target_account ${{ env.GCP_FEED_SSH_USER }} -db_instance ${{ secrets.POSTGRE_SQL_INSTANCE_NAME }} |
107 | | -# sleep 10 # Wait for the tunnel to establish |
108 | | -# |
109 | | -# - name: Test Database Connection Through Tunnel |
110 | | -# run: | |
111 | | -# sudo apt-get update && sudo apt-get install -y postgresql-client |
112 | | -# PGPASSWORD=${{ secrets.DB_USER_PASSWORD }} psql -h localhost -p 5432 -U ${{ secrets.DB_USER_NAME }} -d ${{ inputs.DB_NAME }} -c "SELECT version();" |
113 | | -# |
114 | | -# - name: Run Liquibase |
115 | | -# run: | |
116 | | -# wget -O- https://repo.liquibase.com/liquibase.asc | gpg --dearmor > liquibase-keyring.gpg && \ |
117 | | -# cat liquibase-keyring.gpg | sudo tee /usr/share/keyrings/liquibase-keyring.gpg > /dev/null && \ |
118 | | -# echo 'deb [trusted=yes arch=amd64 signed-by=/usr/share/keyrings/liquibase-keyring.gpg] https://repo.liquibase.com stable main' | sudo tee /etc/apt/sources.list.d/liquibase.list |
119 | | -# |
120 | | -# sudo apt-get update |
121 | | -# sudo apt-get install liquibase=4.25.1 |
122 | | -# |
123 | | -# export LIQUIBASE_CLASSPATH="liquibase" |
124 | | -# export LIQUIBASE_COMMAND_CHANGELOG_FILE="changelog.xml" |
125 | | -# export LIQUIBASE_COMMAND_URL=jdbc:postgresql://localhost:5432/${{ inputs.DB_NAME }} |
126 | | -# export LIQUIBASE_COMMAND_USERNAME=${{ secrets.DB_USER_NAME }} |
127 | | -# export LIQUIBASE_COMMAND_PASSWORD=${{ secrets.DB_USER_PASSWORD }} |
128 | | -# export LIQUIBASE_LOG_LEVEL=FINE |
129 | | -# |
130 | | -# liquibase update |
| 75 | + db-schema-update: |
| 76 | + name: 'Database Schema Update' |
| 77 | + permissions: write-all |
| 78 | + runs-on: ubuntu-latest |
| 79 | + steps: |
| 80 | + - name: Checkout code |
| 81 | + uses: actions/checkout@v4 |
| 82 | + |
| 83 | + - name: Authenticate to Google Cloud QA/PROD |
| 84 | + uses: google-github-actions/auth@v2 |
| 85 | + with: |
| 86 | + credentials_json: ${{ secrets.DB_GCP_MOBILITY_FEEDS_SA_KEY }} |
| 87 | + |
| 88 | + - name: Google Cloud Setup |
| 89 | + uses: google-github-actions/setup-gcloud@v2 |
| 90 | + |
| 91 | + - name: Load secrets from 1Password |
| 92 | + |
| 93 | + with: |
| 94 | + export-env: true # Export loaded secrets as environment variables |
| 95 | + env: |
| 96 | + OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }} |
| 97 | + GCP_FEED_SSH_USER: "op://rbiv7rvkkrsdlpcrz3bmv7nmcu/GCP_FEED_SSH_USER/username" |
| 98 | + GCP_FEED_BASTION_NAME: "op://rbiv7rvkkrsdlpcrz3bmv7nmcu/GCP_FEED_BASTION_NAME/username" |
| 99 | + GCP_FEED_BASTION_SSH_KEY: "op://rbiv7rvkkrsdlpcrz3bmv7nmcu/GCP_FEED_BASTION_SSH_KEY/private key" |
| 100 | + |
| 101 | + - name: Tunnel |
| 102 | + run: | |
| 103 | + mkdir -p ~/.ssh |
| 104 | + echo "${{ env.GCP_FEED_BASTION_SSH_KEY }}" > ~/.ssh/id_rsa |
| 105 | + chmod 600 ~/.ssh/id_rsa |
| 106 | + ./scripts/tunnel-create.sh -project_id ${{ inputs.PROJECT_ID }} -zone ${{ inputs.REGION }}-a -instance ${{ env.GCP_FEED_BASTION_NAME }}-${{ inputs.DB_ENVIRONMENT}} -target_account ${{ env.GCP_FEED_SSH_USER }} -db_instance ${{ secrets.POSTGRE_SQL_INSTANCE_NAME }} |
| 107 | + sleep 10 # Wait for the tunnel to establish |
| 108 | +
|
| 109 | + - name: Test Database Connection Through Tunnel |
| 110 | + run: | |
| 111 | + sudo apt-get update && sudo apt-get install -y postgresql-client |
| 112 | + PGPASSWORD=${{ secrets.DB_USER_PASSWORD }} psql -h localhost -p 5432 -U ${{ secrets.DB_USER_NAME }} -d ${{ inputs.DB_NAME }} -c "SELECT version();" |
| 113 | +
|
| 114 | + - name: Run Liquibase |
| 115 | + run: | |
| 116 | + wget -O- https://repo.liquibase.com/liquibase.asc | gpg --dearmor > liquibase-keyring.gpg && \ |
| 117 | + cat liquibase-keyring.gpg | sudo tee /usr/share/keyrings/liquibase-keyring.gpg > /dev/null && \ |
| 118 | + echo 'deb [trusted=yes arch=amd64 signed-by=/usr/share/keyrings/liquibase-keyring.gpg] https://repo.liquibase.com stable main' | sudo tee /etc/apt/sources.list.d/liquibase.list |
| 119 | +
|
| 120 | + sudo apt-get update |
| 121 | + sudo apt-get install liquibase=4.25.1 |
| 122 | +
|
| 123 | + export LIQUIBASE_CLASSPATH="liquibase" |
| 124 | + export LIQUIBASE_COMMAND_CHANGELOG_FILE="changelog.xml" |
| 125 | + export LIQUIBASE_COMMAND_URL=jdbc:postgresql://localhost:5432/${{ inputs.DB_NAME }} |
| 126 | + export LIQUIBASE_COMMAND_USERNAME=${{ secrets.DB_USER_NAME }} |
| 127 | + export LIQUIBASE_COMMAND_PASSWORD=${{ secrets.DB_USER_PASSWORD }} |
| 128 | + export LIQUIBASE_LOG_LEVEL=FINE |
| 129 | +
|
| 130 | + liquibase update |
131 | 131 |
|
132 | 132 | db-content-update: |
133 | 133 | name: 'Database Content Update' |
134 | 134 | permissions: write-all |
135 | 135 | runs-on: ubuntu-latest |
136 | | -# needs: db-schema-update |
| 136 | + needs: db-schema-update |
137 | 137 | if: ${{ github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' }} |
138 | 138 | steps: |
139 | 139 | - name: Checkout code |
|
0 commit comments