我阅读了如何使用Jenkins DSL设置作业超时。设置一项作业的超时时间。我想为所有作业设置它,并且设置略有不同:150%,平均超过10个作业,最多30分钟。
根据相关的job-dsl-plugin文档,我应该使用以下语法:
job('example-3') {
wrappers {
timeout {
elastic(150, 10, 30)
failBuild()
writeDescription('Build failed due to timeout after {0} minutes')
}
}
}
我在http://job-dsl.herokuapp.com/中进行了测试,这是相关的XML部分:
<buildWrappers>
<hudson.plugins.build__timeout.BuildTimeoutWrapper>
<strategy class='hudson.plugins.build_timeout.impl.ElasticTimeOutStrategy'>
<timeoutPercentage>150</timeoutPercentage>
<numberOfBuilds>10</numberOfBuilds>
<timeoutMinutesElasticDefault>30</timeoutMinutesElasticDefault>
</strategy>
<operationList>
<hudson.plugins.build__timeout.operations.FailOperation></hudson.plugins.build__timeout.operations.FailOperation>
<hudson.plugins.build__timeout.operations.WriteDescriptionOperation>
<description>Build failed due to timeout after {0} minutes</description>
</hudson.plugins.build__timeout.operations.WriteDescriptionOperation>
</operationList>
</hudson.plugins.build__timeout.BuildTimeoutWrapper>
</buildWrappers>
我使用之前手动编辑过的作业进行了验证,并且XML是正确的。因此,我知道到目前为止的Jenkins DSL语法是正确的。
现在,我想将此应用于所有工作。首先,我尝试列出所有作业名称:
import jenkins.model.*
jenkins.model.Jenkins.instance.items.findAll().each {
println("Job: " + it.name)
}
这也可行,所有作业名称都将打印到控制台。
现在,我想将其全部插入。这是我使用的完整代码:
import jenkins.model.*
jenkins.model.Jenkins.instance.items.findAll().each {
job(it.name) {
wrappers {
timeout {
elastic(150, 10, 30)
failBuild()
writeDescription('Build failed due to timeout after {0} minutes')
}
}
}
}
当我推送此代码并且Jenkins运行DSL种子作业时,出现以下错误:
ERROR: Type of item "jobname" does not match existing type, item type can not be changed
我在这里做错了什么?
问题内容: 如何使用Jenkins DSL将作业超时设置为10分钟? 从http://job-dsl.herokuapp.com/中,我可以输入 并为超时生成以下块,默认为3分钟。 我需要输入什么作为“ timeoutClosure”来生成DSL 相反? 问题答案: 在工作中DSL参考说,需要关闭与这种情况: 您可以省略前缀,但是我发现最好将其明确表示为时间单位。
如何使用Jenkins DSL将作业超时设置为10分钟? 从…起http://job-dsl.herokuapp.com/,我可以进去 它为超时生成以下块,默认值为3分钟。 我需要输入什么作为“超时关闭”来生成DSL 反而?
问题内容: 我正在为我的网站使用Codeigniter。我必须使用cron作业来运行控制器功能之一。我在网站上使用路线。而且我不在网址中使用index.php。 例如http://my-domain.com/welcome/show,这里Welcome是我的控制器,而show是该控制器的功能名称。 我已经习惯了 它给出了“没有这样的目录” 如何在CPANEL中为上述网址设置cron jon。 谢谢
问题内容: 我将Groovy脚本作为Jenkins中Pipeline工作的一部分,如下所示: 由于将标记设置为,因此它并行执行多个其他自由式作业。但是,我希望所有作业完成后才能完成呼叫者作业。目前,Pipeline作业会触发所有作业并在几秒钟后自行完成,这不是我想要的,因为我无法跟踪总时间,而且我无法一次取消所有已触发的作业。 当并行完成所有作业时,如何纠正上述脚本以完成管道作业? 我试图将构建作
问题内容: 我的hudson CI上有大约100个工作,可以批量删除吗? 问题答案: 恕我直言,最简单的方法是使用脚本。去 通过运行以下命令删除作业: 这样,您就可以轻松使用条件筛选出要删除的作业。 对于牛仔裤 当前版本(2.x): 旧版本:
问题内容: 我正在尝试编写一个Jenkins作业(例如CopyJob),该作业将复制另一个作业(在此作业中使用Multijob插件),并且还将其所有下游作业复制到新作业中。想法是要有一个Multijob作为模板,以便可以将其复制到新的Multijobs中(例如,用于特定的分支或功能)。 看到: 当手动触发“ CopyJob”时,它将使用新的SubJobs创建一个新的MultiJob: 到目前为止,