在jenkins 2.73.1中,我有一个用groovy编写的管道作业,有两个String参数:ReleaseVersion
和NextDevelopmentVersion
。
我希望通过在脚本末尾存储/更新当前作业参数值来简化作业的使用,以便它们成为下一个构建的下一个默认值。
例:
用户为当前构建输入以下值:
ReleaseVersion = 1.2.3
NextDevelopmentVersion = 1.2.4-SNAPSHOT
我想更新作业默认值,以便下一个版本显示
ReleaseVersion = 1.2.4
NextDevelopmentVersion = 1.2.5-SNAPSHOT
这可能吗? 如何在groovy中做到这一点?
我发现了这个问题how to store last value of parameter in parameterized job as a default value for?,但无法使其发挥作用。
答案 0 :(得分:0)
将这些值作为参数传递给作业,并读入管道代码中的变量。
然后使用Rebuild plugin,这将允许您使用先前构建的参数重新运行作业。无需配置。
答案 1 :(得分:0)
问题是存在9个月了,在此期间,詹金斯管道功能发生了很大变化。我只能说的是,这似乎在Jenkins 2.73的今天就可以了。
在Jenkins文件中,您可以有一个类似这样的部分来设置一些构建参数:
properties properties: [
parameters([
string(defaultValue: env.VERSION, description: 'Version to deploy', name: 'VERSION'),
])
]
当某人单击此作业的“立即构建”,输入版本值并单击“构建”时,作业配置中的默认值将设置环境变量VERSION,以在Jenkinsfile运行时使用。
因此,用户键入的值将作为新的默认值重新设置到作业配置中。这对当前运行没有影响,但将在下一次运行中应用。
当用户再次单击“立即构建”进行下一次运行时,该值将显示为默认值。
我非常确定,尽管如此复杂,但它可能并非总是以这种方式工作。但是缺点很有限,因为可能发生的一切是,用户必须在单击“生成”按钮之前在框中输入正确的新版本号。
答案 2 :(得分:-1)
使用参数如下:
node {
properties([parameters([string(defaultValue: this.abc, description: '', name: 'abc', trim: false)])])
echo params.abc
}