How to write Pipeline to discard old builds?
Solution 1:
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.
Solution 2:
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.