我需要记住最后的参数值,当我开始一个新的构建参数。我有两个字符串参数:
${BRANCH} ${ServerSpecified}
在第一次构建执行时,我需要这些值为空,但对于第二次执行,我需要第一次执行的值,在第三次执行中,第二次执行的值,等等。我需要安装一个插件吗?我试过在groovy中使用动态参数,但是我不能提取最后一个值。有人知道怎么做或者有其他的想法吗?
iq3niunx1#
为了从以前的执行中检索参数,您可以在管道中遵循以下方法:
def defaultValueForMyParameter = "My_Default_Value" node('master') { parameterValue = params.MY_PARAMETER ?: defaultValueForMyParameter } pipeline { parameters { string(name: 'MY_PARAMETER', defaultValue: parameterValue, description: "whatever") } ... }
此代码跟踪参数的最后一次使用值,允许在运行之前或运行期间对其进行更改。如果作业中不存在该参数,则将创建该参数并为其分配默认值。
uxh89sit2#
有一个Rebuild plugin,它允许您重新构建任何感兴趣的作业,还允许您修改一个或多个原始构建参数
byqmnocz3#
是的,看起来你正在尝试发明像Version Number Plugin这样的东西:这个插件创建一个新的版本号,并将其存储在您在配置中指定的环境变量中。所以你可以想要多少变量都行。
qmelpv7a4#
没有人提到Persistent Parameter plugin,这是我使用的。支持字符串参数、选择等。
vq8itlhq5#
每隔几个月/几年,我都要做同样的事情,我会为“我上次是怎么解决的?”而挠头。这和@sergio-prats写的是一样的解决方案,但有一个转折:
pipeline { agent { label any } parameters { string(name: 'TARGET_SYS', defaultValue: params.TARGET_SYS ? params.TARGET_SYS : 'system1', description: 'Target system') } ... }
对于选择参数也可以这样做,例如:
import groovy.transform.Field @Field List<String> TARGET_SYS_VALUES = ['ci', 'dev', 'test', 'staging'] pipeline { agent { label any } parameters { choice(name: 'TARGET_SYS', choices: (params.TARGET_SYS ? [params.TARGET_SYS] : []) + (TARGET_SYS_VALUES - (params.TARGET_SYS ? [params.TARGET_SYS] : [])), description: 'Some fictive target systems') } ... }
这是如何工作的?在Jenkins pipelines中,params包含 current build的job/build参数值。该HashMap在 * parameters * 定义块 * 被评估之前 * 被初始化。重新评估发生在 * 每个build* 上。所以:
params
parameters
string
defaultValue
choice
choices
5条答案
按热度按时间iq3niunx1#
为了从以前的执行中检索参数,您可以在管道中遵循以下方法:
此代码跟踪参数的最后一次使用值,允许在运行之前或运行期间对其进行更改。如果作业中不存在该参数,则将创建该参数并为其分配默认值。
uxh89sit2#
有一个Rebuild plugin,它允许您重新构建任何感兴趣的作业,还允许您修改一个或多个原始构建参数
byqmnocz3#
是的,看起来你正在尝试发明像Version Number Plugin这样的东西:
这个插件创建一个新的版本号,并将其存储在您在配置中指定的环境变量中。
所以你可以想要多少变量都行。
qmelpv7a4#
没有人提到Persistent Parameter plugin,这是我使用的。
支持字符串参数、选择等。
vq8itlhq5#
每隔几个月/几年,我都要做同样的事情,我会为“我上次是怎么解决的?”而挠头。这和@sergio-prats写的是一样的解决方案,但有一个转折:
对于选择参数也可以这样做,例如:
这是如何工作的?在Jenkins pipelines中,
params
包含 current build的job/build参数值。该HashMap在 *parameters
* 定义块 * 被评估之前 * 被初始化。重新评估发生在 * 每个build* 上。所以:string
在每个构建N中评估defaultValue
,并在 next 构建N+1中提供该值。choice
没有defaultValue
选项。相反,choices
选项的第一个值作为默认值提供。该选项也在每次构建期间进行评估,并在 * 下一个 * 构建中提供。