This script is aimed at admins using Thoughtworks GO continuous delivery tool https://www.go.cd/. I'm not affiliated to them in any way, just one of the many users through profession of the CI platform.
run the script from the machine where your go-server is installed.
It assumes having the default setup and file structure: '/var/lib/go-server/artifacts/pipelines'
By default it will chuck anything older than 180 days, unless there is 15 builds or less present in a pipeline. In the latter case nothing (more) will be deleted from the pipeline and the scripts moves on to the next pipeline.
Optionally on the bash command you can pass parameters to set your own retention period in days and/or the minimum amount of builds you want to keep in a pipeline.
parameters:
- '-h' for help
- '-r' or 'R' for Retention time in days
- '-b' or 'B' for Builds to keep in a pipeline
example command: './cleanup.sh -r 100 -b 10' This would chuck out any builds older than 100 days, unless there is 10 or less builds in a pipeline. In the latter case nothing (more) will deleted and the next pipeline is evaluated.
This script contains a 'rm -rf' command and if amended might behave unexpectedly and start deleting stuff you don't wont to loose. So, as with any potentially catastrophic scripts, make sure to:
- NOT run the script as ROOT!! Use an appropriate user (e.g. 'go')
- make sure you have backups before you start
- running it is at your own risk
tip: set it up to execute periodically as a cron job and you'll have a lot less worries about go-server disk space issues