How to write Pipeline to discard old builds?
For Scripted Pipelines use:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
You can use the properties
method which, nested within the BuildDiscarderProperty
eventually has the key you want to set. I still don't have a solid way to look up the correct syntax of each key. After much guessing and checking:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
Note that this snippet is for scripted syntax.
As for declarative syntax, you can use the options
block:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
Parameters for logRotator
(from the source code):
daysToKeepStr
: history is only kept up to this days.numToKeepStr
: only this number of build logs are kept.artifactDaysToKeepStr
: artifacts are only kept up to this days.artifactNumToKeepStr
: only this number of builds have their artifacts kept.
More information can be found in Cloudbees knowledge base and in the docs for options
block.