diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index 85ee8720f..fe3b92c04 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -340,16 +340,6 @@ jobs: # labels: |- # commit-sha=${{ github.sha }} - - name: "Destroy Tests databases" - if: ${{ matrix.region == 'europe-west4' }} - env: - GCP_PROJECT: ghost-activitypub - run: | - TEST_DATABASES=$(gcloud sql databases list --instance=stg-netherlands-activitypub --filter="name~test*" --format="value(name)" --project ${GCP_PROJECT}) - for TEST_DATABASE in ${TEST_DATABASES}; do - gcloud sql databases delete ${TEST_DATABASE} --instance=stg-netherlands-activitypub --quiet --project ${GCP_PROJECT} - done - - name: "Deploy ActivityPub Queue to Cloud Run" uses: google-github-actions/deploy-cloudrun@v2 with: @@ -431,16 +421,36 @@ jobs: env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + cleanup-staging-tests-dbs: + name: Cleanup Staging Tests Databases + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' + steps: + - name: "Authenticate with GCP" + uses: google-github-actions/auth@v2 + with: + token_format: access_token + workload_identity_provider: projects/687476608778/locations/global/workloadIdentityPools/github-oidc-activitypub/providers/github-provider-activitypub + service_account: stg-activitypub-cicd-stg-envs@ghost-activitypub.iam.gserviceaccount.com + + - name: "Destroy Tests databases" + env: + GCP_PROJECT: ghost-activitypub + run: | + TEST_DATABASES=$(gcloud sql databases list --instance=stg-netherlands-activitypub --filter="name~test*" --format="value(name)" --project ${GCP_PROJECT}) + for TEST_DATABASE in ${TEST_DATABASES}; do + gcloud sql databases delete ${TEST_DATABASE} --instance=stg-netherlands-activitypub --quiet --project ${GCP_PROJECT} + done + build-cleanup-job: name: Build & Push cleanup job runs-on: ubuntu-latest if: github.ref == 'refs/heads/main' - steps: - - name: Checkout + - name: "Checkout" uses: actions/checkout@v4 - - name: Check for changes in cleanup job + - name: "Check for changes in cleanup job" id: changes uses: dorny/paths-filter@v3 with: @@ -448,7 +458,7 @@ jobs: cleanup: - 'jobs/cleanup-expired-key-value-records/**' - - name: Authenticate with GCP + - name: "Authenticate with GCP" if: steps.changes.outputs.cleanup == 'true' id: gcp-auth uses: google-github-actions/auth@v2 @@ -457,7 +467,7 @@ jobs: workload_identity_provider: projects/687476608778/locations/global/workloadIdentityPools/github-oidc-activitypub/providers/github-provider-activitypub service_account: stg-activitypub-cicd@ghost-activitypub.iam.gserviceaccount.com - - name: Login to GCP Artifact Registry + - name: "Login to GCP Artifact Registry" if: steps.changes.outputs.cleanup == 'true' uses: docker/login-action@v3 with: @@ -465,7 +475,7 @@ jobs: username: oauth2accesstoken password: ${{ steps.gcp-auth.outputs.access_token }} - - name: Docker metadata + - name: "Docker metadata" if: steps.changes.outputs.cleanup == 'true' id: cleanup-meta uses: docker/metadata-action@v5 @@ -475,7 +485,7 @@ jobs: type=sha type=edge,branch=main - - name: Build & Push cleanup job image + - name: "Build & Push cleanup job image" if: steps.changes.outputs.cleanup == 'true' uses: docker/build-push-action@v6 with: diff --git a/.github/workflows/ephemeral-staging-teardown.yml b/.github/workflows/ephemeral-staging-teardown.yml index 469380a97..04d77510d 100644 --- a/.github/workflows/ephemeral-staging-teardown.yml +++ b/.github/workflows/ephemeral-staging-teardown.yml @@ -89,6 +89,19 @@ jobs: workload_identity_provider: projects/687476608778/locations/global/workloadIdentityPools/github-oidc-activitypub/providers/github-provider-activitypub service_account: stg-activitypub-cicd-stg-envs@ghost-activitypub.iam.gserviceaccount.com + - name: "Destroy Tests databases" + if: ${{ steps.check-closed-prs.outputs.destroy_prs != '' }} + env: + GCP_PROJECT: ghost-activitypub + DESTROY_PRS: ${{ steps.check-closed-prs.outputs.destroy_prs }} + run: | + for PR_NUMBER in ${DESTROY_PRS}; do + TEST_DATABASES=$(gcloud sql databases list --instance=stg-netherlands-activitypub --filter="name~pr_${PR_NUMBER}_test*" --format="value(name)" --project ${GCP_PROJECT}) + for TEST_DATABASE in ${TEST_DATABASES}; do + gcloud sql databases delete ${TEST_DATABASE} --instance=stg-netherlands-activitypub --quiet --project ${GCP_PROJECT} + done + done + - name: "Remove route from GCP Load Balancer" if: ${{ steps.check-closed-prs.outputs.destroy_prs != '' }} env: