7
votes

How can one set the number of builds kept by Jenkins for a specific job?

Jenkins keeps the last 30 builds of all our jobs. For a specific job, though, we would like to keep 60 builds, not 30.

I went to the job's configuration page, ticked "Discard old builds", entered "60" into "Max # of builds to keep", saved the job configuration, and restarted Jenkins.

After this change, Jenkins still keeps only 30 builds of the job. What am I doing wrong?

Related question: Why are only 30 builds kept? (I thought the default was not to delete any builds.)

We use Jenkins version 2.164.1 under Linux.

2

2 Answers

14
votes

By default Jenkins keeps all builds in its disk and its advised that you use build discard to remove older builds to save disk space. This is a feature that is given to you by Jenkins so you can change the number of builds you want to keep.

If you are using a freestyle job change the max build as seen in the below screen shot FreeStyleJenkinsJob If you are using a Declarative pipeline you can just add this to your code:

pipeline {
  options {
    buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
  }
  ...
}
3
votes

The UI is limited to 30 builds. Try accessing older builds via the url with the build number, f.e.

https://myjenkins.uk/view/TWIN/job/myjob/insert-build-number-here/

You can also access the builds with stored artifacts on your jenkins master, f.e.:

/var/lib/jenkins/jobs/myjob/builds