如何将参数化作业中参数的最后一个值存储为Jenkins中下一个构建的默认值?

Bob*_*tor 12 jenkins jenkins-plugins

我一直在使用Jenkins几周,我有一个小问题.我找不到任何插件或解决方案,用于将参数化作业中参数的最后一个值存储为下一个构建的默认值.

例如:我的参数在第一次构建中采用构建版本(1.0.0.01).在下一个版本中,它将更改为1.0.0.02,但我希望在默认值字段中有一个1.0.0.01作为提示.有人有解决方案或建议吗?

mac*_*3zr 9

您可以使用Jenkins API为您的作业添加System groovy构建步骤(或者可能是构建后的Groovy步骤),以直接修改项目设置的默认参数值.

以下是一些可能对您有用的代码:

import hudson.model.*

paramsDef = build.getParent().getProperty(ParametersDefinitionProperty.class)
if (paramsDef) {
  paramsDef.parameterDefinitions.each{ param ->
    if (param.name == 'FOO') {
      println("Changing parameter ${param.name} default value was '${param.defaultValue}' to '${param.defaultValue} BAR'")
      param.defaultValue = "${param.defaultValue} BAR"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

看看Jenkins模型中的ParameterDefinition类.

您可能需要根据当前构建执行修改默认参数值.获得它的一些代码如下所示:

def thisBuildParamValue = build.buildVariableResolver.resolve('FOO')
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的代码示例.问题是在重新启动jenkins之间不会存储新值.只要未重新启动jenkins,将更改默认值,并在下一次构建中使用新值.但是如果重新启动jenkins,默认值将回落到最后一个手动添加的值.是否有可能使这个新值"难以存储"? (2认同)

thi*_*olr 7

持续参数插件正是你在找什么!

您只需从官方Jenkins存储库下载并安装它,无需任何其他设置.

然后在您的工作中,您只需添加"持久参数",以便在构建之间使用和保存默认值.