groovy语法生成器不适用于示例步骤properties: Set Job Properties
。我已选择Discard old builds
,然后在10
字段中输入Max # of builds to keep
,然后Generate Groovy
,则无法显示任何内容。
Jenkins版本:2.7
答案 0 :(得分:102)
对于声明性语法,您可以使用options
块:
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '30'))
}
...
}
logRotator
的参数(来自the source code):
daysToKeepStr
:历史记录只保留至今。numToKeepStr
:只保留此数量的构建日志。artifactDaysToKeepStr
:工件只能保留至今。artifactNumToKeepStr
:只有这些版本的构件才能保留其工件。可以在Cloudbees knowledge base和the docs for options
block中找到更多信息。
答案 1 :(得分:39)
您可以使用嵌套在properties
中的BuildDiscarderProperty
方法最终拥有您想要设置的密钥。我仍然没有一种可靠的方法来查找每个键的正确语法。经过多次猜测和检查:
properties([[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '', numToKeepStr: '10']]]);
请注意,此代码段用于脚本语法。
答案 2 :(得分:6)
对于声明性管道,您可以添加以下内容:
options {
buildDiscarder(
logRotator(
// number of build logs to keep
numToKeepStr:'5',
// history to keep in days
daysToKeepStr: '15',
// artifacts are kept for days
artifactDaysToKeepStr: '15',
// number of builds have their artifacts kept
artifactNumToKeepStr: '5'
)
)
}
答案 3 :(得分:5)
瓦迪姆的答案因某些未知原因对我不起作用。我将其简化如下,现在可以使用了:
options {
buildDiscarder(logRotator(numToKeepStr: '3'))
}
答案 4 :(得分:4)
要在特定数量的天之后放弃构建
options {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
在特定数量的构建之后放弃构建:
options {
buildDiscarder(logRotator(numToKeepStr: '7'))
}
答案 5 :(得分:4)
Jenkins内置了语法生成器页面。
Pipeline-Syntax:Snippet Generator
<your jenkins url
&GT; /管线的语法/
管道 - 语法:指令生成器
<your jenkins url
&GT; /指令发电机/
答案 6 :(得分:4)
对于脚本化管道,请使用:
properties([
buildDiscarder(logRotator(daysToKeepStr: '3', numToKeepStr: '3')),
])
答案 7 :(得分:1)
如果要在multibranch管道作业级别配置构建保留(在所有单个Jenkinsfile
中),这也是可能的:
https://issues.jenkins-ci.org/browse/JENKINS-30519?focusedCommentId=325601&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-325601
除BuildRetentionBranchProperty
之外,您还可以在此配置*BranchProperty
中的任何其他内容:
https://github.com/jenkinsci/branch-api-plugin/tree/master/src/main/java/jenkins/branch
尽管如此,它们可能不会出现在GUI中,至少对我来说是Jenkins 2.73.2。但您仍然可以使用JobDSL或直接修改config.xml
(我没有说; - ))
答案 8 :(得分:0)
如果您需要编程方式(即从函数中执行此操作,而不是使用options{}
管道语法):
def someFunction() {
...
properties([
buildDiscarder(logRotator(numToKeepStr: '5'))
])
}