I can confirm deleting old builds PER branch is working for declarative
syntax by using the option:
options {
buildDiscarder(logRotator(numToKeepStr:'10'))
}
But this doesn't really solve my problem. I want to keep max N builds
across ALL branches in a multibranch pipeline to maintain a more
predictable disk usage rate. That's what my Groovy script accomplishes.
On Tue, Nov 28, 2017 at 4:53 PM, Mark Waite <[email protected]>
wrote:
>
>
> On Tuesday, November 28, 2017 at 4:50:48 PM UTC-7, Kevin Brotcke wrote:
>>
>> I also couldn't get the buildDiscarder working, nothing seems to be
>> happening. In our case we create a lot of long lasting branches which
>> filled up our Jenins server disk space pretty quickly. I wrote a quick
>> Groovy script to delete old builds across all branches but I'd prefer a
>> more integrated solution:
>>
>> https://gist.github.com/kevin-brotcke/8f65f07e7314ae811df242abc70b2ef2
>>
>>
> From scripted pipeline
> <https://github.com/MarkEWaite/jenkins-bugs/blob/eeac3d925dbb5723979bd87ecf6643d895e7c49b/Jenkinsfile#L8>,
> I use properties([[$class: 'BuildDiscarderProperty', strategy: [$class:
> 'LogRotator', numToKeepStr: '7']]]) and it works great. I haven't tried it
> with declarative pipeline, but would be surprised if it did not work just
> as well there.
>
> Mark Waite
>
>
>
>>
>> On Friday, May 5, 2017 at 1:06:04 PM UTC-7, Mark Stosberg wrote:
>>>
>>> On Wednesday, March 1, 2017 at 4:08:53 AM UTC-5, Baptiste Mathus wrote:
>>>>>
>>>>> I don't think there's something per branch, but you probably want to
>>>>> either search JIRA and/or file a new feature request about it.
>>>>>
>>>>> You shouldn't need a special plugin, this is a standard feature.
>>>>> Here's the way to do it with Declarative Pipeline:
>>>>>
>>>>> pipeline {
>>>>> options {
>>>>> buildDiscarder(logRotator(numToKeepStr: '20'))
>>>>> }
>>>>> ...
>>>>> }
>>>>>
>>>>> Or with scripted Pipeline: https://github.com/j
>>>>> enkinsci/jenkins/blob/master/Jenkinsfile#L17-L19
>>>>>
>>>>
>>>
>>> I'm stil not seeing any signs that the buildDiscarder plugin is working
>>> for me. At the top of my Jenkinsfile, I have this:
>>>
>>> properties([[
>>> $class: 'jenkins.model.BuildDiscarderProperty',
>>> strategy: [$class: 'LogRotator', numToKeepStr: '50',
>>> artifactNumToKeepStr: '50']
>>> ]])
>>>
>>> That's just above my "node {}" block.
>>>
>>> From reading related source code at:
>>> https://github.com/jenkinsci/jenkins/blob/08def67a18eee51de9
>>> f3f99bc2a792fee1c160e0/core/src/main/java/hudson/tasks/LogRotator.java
>>>
>>> I can see that this function should generate some logging, but I can't
>>> find the log entries indicating this is running in either the web-based
>>> Jenkins log page, or under /var/log/jenkins/*
>>>
>>> The effective-but-imperfect workaround I've found is to just manually
>>> delete only builds:
>>>
>>> find "/var/lib/jenkins/jobs/My Pipeline/branches/" -mindepth 3
>>> -maxdepth 3 -type d -ctime +15 | xargs -d '\n' rm -rf
>>>
>>> That doesn't have the safety nets of preserving any builds that are
>>> last-successful, promoted, etc.
>>>
>>> Some questions:
>>>
>>> * Should the logging I see in the source code *always* be happening or
>>> there something I need to do activate that logging?
>>> * Should properties() call work outside a node block?
>>> * Are there any serious drawbacks to just manually deleting old build
>>> myself? This built-in log rotation has proven especially time-consuming for
>>> what seems like it should be a simple feature to setup.
>>>
>>> Thanks,
>>>
>>> Mark
>>>
>>> 2017-02-28 20:24 GMT+01:00 Mark Stosberg <[email protected]>:
>>>>>
>>>>>> For cleaning up old builds, the "Discard Old Builds" plugin is
>>>>>> recommended:
>>>>>>
>>>>>> https://wiki.jenkins-ci.org/display/JENKINS/Discard+Old+Build+plugin
>>>>>>
>>>>>> However, the instructions for reference a "post build" step which
>>>>>> doesn't exist in the Configure interface for Multibranch Pipeline
>>>>>> projects.
>>>>>>
>>>>>> What's the recommended way to clean-up builds from multi-branch
>>>>>> pipeline projects? Ideally I'd like different pruning policies for
>>>>>> different branches.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Mark
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Jenkins Users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/d/msgid/jenkinsci-users/1d9e0343-
>>>>>> bbce-474f-a4fe-7623a4f39aaf%40googlegroups.com
>>>>>> <https://groups.google.com/d/msgid/jenkinsci-users/1d9e0343-bbce-474f-a4fe-7623a4f39aaf%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Jenkins Users" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/jenkinsci-users/_06kZ20xpEE/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/jenkinsci-users/265b88d6-3c72-4c0f-8c59-de35dabcafd5%40googlegroups.
> com
> <https://groups.google.com/d/msgid/jenkinsci-users/265b88d6-3c72-4c0f-8c59-de35dabcafd5%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/CAKge%3Dw-VgEYsReQ9LpLYnFEO8YvZ0B3xyGRmg%2BrRev4%2BysgXsQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.