背景
Jenkins任务执行,随之构建次数增多,构建日志所占磁盘大小不断增大,需要配置清除策略。
而 discard old builds
就是配置丢弃旧的构建;若是我们使用python-jenkins
调用修改配置该如何设置?
调用设置
这里是按照 xml
的格式进行请求接口配置的流水线,截取相关片段配置:
<jenkins.model.BuildDiscarderProperty><strategy class="hudson.tasks.LogRotator"><daysToKeep>10</daysToKeep><numToKeep>10</numToKeep><artifactDaysToKeep>-1</artifactDaysToKeep><artifactNumToKeep>-1</artifactNumToKeep></strategy>
</jenkins.model.BuildDiscarderProperty>
请求成功后,确实从UI上看,是设置成功了,但每次有新的构建,这个参数就会被丢失掉。
于是手动在UI上操作保存了一次,然后在服务端查看了配置文件,发现比自己的配置多一些配置项,如下所示:
<actions><org.jenkinsci.plugins.workflow.multibranch.JobPropertyTrackerAction plugin="workflow-multibranch@2.21"><jobPropertyDescriptors><string>hudson.model.ParametersDefinitionProperty</string></jobPropertyDescriptors></org.jenkinsci.plugins.workflow.multibranch.JobPropertyTrackerAction>
</actions>
如此设置后,才保证了设置discard old builds
正常工作。
其他注意事项
discard old builds
配置的多条件是或的关系,只要满足其中一个条件的记录都会被删除。
参考
- Discard old build in multi-branch pipeline job, doesn’t really delete builds from server
- Jenkins plugin – Build Discarder
- Pipeline: Multibranch