如何在Jenkins管道中存储以前的参数值?

时间:2017-10-19 10:32:03

标签: jenkins groovy jenkins-pipeline

在jenkins 2.73.1中,我有一个用groovy编写的管道作业,有两个String参数:ReleaseVersionNextDevelopmentVersion

我希望通过在脚本末尾存储/更新当前作业参数值来简化作业的使用,以便它们成为下一个构建的下一个默认值。

例:
用户为当前构建输入以下值:

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?,但无法使其发挥作用。

3 个答案:

答案 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
}