背景

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 配置的多条件是或的关系,只要满足其中一个条件的记录都会被删除。

参考

更多推荐