Jenkins管道构建器丢弃属性

Jenkins管道构建器丢弃属性,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我试图利用BuildDiscarderProperty选项与我们的jenkins作业模板。但目前它只使用属性函数,这不利于作业模板的使用。是否有人可以帮助我们在不使用properties函数的情况下配置BuildDiscarderProperty选项? 感谢您的评论,这里有一个完整的声明性管道,可以丢弃旧版本: pipeline { agent { label 'docker' } options { buildDiscarder(logRotator(numToKeepStr:

我试图利用BuildDiscarderProperty选项与我们的jenkins作业模板。但目前它只使用属性函数,这不利于作业模板的使用。是否有人可以帮助我们在不使用properties函数的情况下配置BuildDiscarderProperty选项?
感谢您的评论,这里有一个完整的声明性管道,可以丢弃旧版本:

pipeline {
  agent { label 'docker' }
  options {
    buildDiscarder(logRotator(numToKeepStr: '200'))
  }
  stages {
    stage ('build') {
      steps {
        sh 'ls'
      }
    }
  }
}

我断言模板已被弃用。听起来对吗?:)

找到了解决办法。在Groovy模板中为管道使用常规作业定义。它不是破坏任何东西,只是删除旧的构建

<flow-definition>
<properties>
  <jenkins.model.BuildDiscarderProperty>
  <strategy class="hudson.tasks.LogRotator">
    <daysToKeep>365</daysToKeep>
    <numToKeep>30</numToKeep>
    <artifactDaysToKeep>-1</artifactDaysToKeep>
    <artifactNumToKeep>-1</artifactNumToKeep>
  </strategy>
  </jenkins.model.BuildDiscarderProperty>
  <org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
</org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
</properties>

</flow-definition>

365
30
-1
-1

我不明白为什么属性不能很好地处理“作业模板”,因为我不确定作业模板是什么。您是否使用插件来实现“作业模板”?哪一个?您正在使用Jenkins文件吗?如果是,您可以发布它吗?通常,当您基于任何作业模板创建作业时,它将显示指向模板的链接,如果您单击“配置”,它将提供更新作业模板中定义的属性的选项。但若您定义了属性,在第一次执行作业后,指向模板的链接将丢失,而且若您单击“配置”,它将类似于一个独立的管道作业。因此,将来对模板的任何更改都将不适用于这些作业。在执行过程中,您将收到如下消息。警告:“属性”步骤将从此作业中当前配置的所有JobProperty从UI或早期的“属性”步骤中删除。这包括丢弃旧版本、参数、并发版本和版本触发器的配置。警告:删除现有作业属性“”我认为不使用属性就无法在Jenkins文件中指定“放弃旧版本”。请不要回答这个问题,但我很好奇,如果所有作业配置都在源代码管理中(Jenkins文件和共享库),模板会为您购买什么?我在Cloudbes网站上看到了这一点。但试图理解声明性管道语法-此选项起作用,但作业属性重置并删除了指向作业模板的链接:(与使用properties函数的操作完全相同。警告:properties步骤将从UI或早期的properties步骤中删除此作业中当前配置的所有JobProperty。这包括放弃o的配置。)ld生成、参数、并发生成和生成触发器。警告:删除现有作业属性“”警告:删除现有作业属性“生成触发器”是的,在这方面,我不希望它与脚本管道的工作方式不同。我的断言(我不确定是否正确)模板在作为代码的管道世界中是不相关/不必要的。