Skip to content

Instantly share code, notes, and snippets.

@lasersox
Last active February 6, 2020 15:47
Show Gist options
  • Save lasersox/1c450c0280e109dd46406a6c8330dae3 to your computer and use it in GitHub Desktop.
Save lasersox/1c450c0280e109dd46406a6c8330dae3 to your computer and use it in GitHub Desktop.
Automatically delete stale AppEngine versions with CircleCI
# Javascript Node CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-javascript/ for more details
#
version: 2
jobs:
cleanup-stale-qa-versions:
docker:
- image: google/cloud-sdk
working_directory: ~/repo/app
steps:
- run:
command: |
set +e
echo $GCLOUD_SERVICE_KEY | base64 -d > ${HOME}/gcloud-service-key.json
gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json
gcloud config set project $GCP_PROJECT
echo 'Delete unused frontend versions (those without traffic)...'
deleteFrontendVersions=$(gcloud app versions list --project $GCP_PROJECT --service default --format='csv[no-heading](id)' --filter='traffic_split:0' || true | tr '\n' ' ')
[ -n "$deleteFrontendVersions" ] && gcloud app versions delete --project $GCP_PROJECT --service default --quiet ${deleteFrontendVersions} || true
echo 'Delete unused backend versions (those without traffic)...'
deleteBackendVersions=$(gcloud app versions list --project $GCP_PROJECT --service backend --format='csv[no-heading](id)' --filter='traffic_split:0' || true | tr '\n' ' ')
[ -n "$deleteBackendVersions" ] && gcloud app versions delete --project $GCP_PROJECT --service backend --quiet ${deleteBackendVersions} || true
workflows:
version: 2
scheduled-cleanup-of-stale-qa-versions:
triggers:
- schedule:
cron: "0 0,2,4,6,8,10,12,14,16,18,20,22 * * *"
filters:
branches:
only:
- master
jobs:
- cleanup-stale-versions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment