我一直在使用Jenkins几个星期,但我有一个小问题。我找不到任何插件或解决方案来将参数化作业中参数的最后一个值存储为下一个版本的默认值。
例如:我的参数在第一个版本中采用版本(1.0.0.01)。在下一个版本中,它将更改为1.0.0.02,但我想在默认值字段中使用1.0.0.01作为提示。有人有解决方案或建议吗?
您可以使用Jenkins API将System groovy构建步骤(或也许是post build
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"
}
}
}
看看Jenkins模型中的ParameterDefinition类。
您可能需要根据当前执行的构建来修改默认参数值。一些获得的代码如下所示:
def thisBuildParamValue = build.buildVariableResolver.resolve('FOO')
问题内容: 我正在使用Jenkins的 “扩展选择参数” 插件,并希望安排构建定期运行而无需人工干预。 从下拉列表中选择构建的参数。 该参数的下拉列表是通过外部脚本生成的,我一直想选择最高的值作为默认值。 有没有办法选择最上面的元素作为计划作业的默认值? 我阅读了一些使用url远程运行作业的方法,但我希望可以通过仅更改作业配置来实现此目的,从而不必为它管理单独的脚本。 我的Jenkins实例在Li
我目前正在做一个项目,在这个项目中,我们有一个jenkins实例与一个单独的网站并排运行,工作流程是这样的,用户需要点击网站中的链接,从而触发jenkins实例中的jenkins作业。 触发的jenkins作业有几十个参数,我们目前正在做的是,该网站将使用javascript构建一个如下URL: https://JENKINS_HOST/作业/JOB_NAME/build with Paramet
问题内容: 在管理多个作业的管道作业的Groovy代码中,是否可以读取在另一个作业的配置中定义的参数的默认值? 也就是说,在管道作业A中,我想读取作业B中参数P的默认值,该值尚未安排。(这将影响在作业A中构造B的请求的方式。) ReadJobParamDefault是否真正有用? 问题答案: 我想可能可以将某些Groovy类存储到共享库(https://jenkins.io/doc/book/pi
例如,我想要: 如果用户已指定增量,请使用它。如果不是,请使用依赖于 n 的值。这可能吗?
问题内容: 例如,我想要: 如果用户指定了增量,请使用它。如果不是,则使用取决于n的值。这可能吗? 问题答案: 该语言不支持这种语法。 对于这些情况(*),通常的解决方法是使用不是有效输入的默认值。 (*)当默认值是可变的时,也会出现类似的问题。
我使用远程访问API远程触发参数化Jenkins作业,如下所示: 我希望Jenkins为我的一个参数使用配置的默认值,但似乎所有参数都需要值。 如果我省略了一个参数,作业会将其视为空字符串。 是否有办法使其使用参数的配置默认值? 编辑:解决方案(根据Daniel S.)是使用,如下所示: 另一个编辑:但是现在的问题是不能在没有参数的作业上工作。因此,它不能用于通用脚本来启动我的所有工作。