Jenkins 参数化调度器的主动选择无功参数

Jenkins 参数化调度器的主动选择无功参数,jenkins,groovy,environment-variables,scheduler,parameterized,Jenkins,Groovy,Environment Variables,Scheduler,Parameterized,我有一些参数化的内置Jenkins,其中有几个主动选择被动参数:par1,par2。 par1由combo定义,par2值取决于par1: switch (par1) { case 'value1': return 'test1' case 'value2': return 'test2' default: return 'test' } 对于手动触发器,它可以正常工作,但如果尝试使用参数化的计划触发器,则会失败: H * * * * %par1=value1 是否有

我有一些参数化的内置Jenkins,其中有几个主动选择被动参数:par1,par2。 par1由combo定义,par2值取决于par1:

switch (par1) {
    case 'value1': return 'test1'
    case 'value2': return 'test2'
    default: return 'test'
}
对于手动触发器,它可以正常工作,但如果尝试使用参数化的计划触发器,则会失败:

H * * * * %par1=value1

是否有可能以某种方式解决此问题?

您的周期性输入应该每小时运行一次(1)

将此
H****%par1=value1
更改为
***
每分钟一次或
H/1****
(1小时)或
H/2****
(每2分钟一次)。是的,当你使用1时,它有点让人困惑,1小时比1分钟(使用
H/1


另外,请确保您的par2(Active choice Responsive parameter中的Groovy code部分)正在处理
par1
不仅仅是单个值(
test1
)的情况,即当用户为par2参数选择多个值(如果是
multiple Select
类型)时,它可以是
test1、test2、test3、

贫困在于,如果用户从多选组合框中选择一个值,那么Jenkins将给您一个您将选择的值。如果您确实从组合框中选择了多个值(实际上插件没有提到“combo”,我认为您指的是多选复选框),那么Jenkins将以字符串形式返回值,但以逗号分隔。PS:它的格式不是
['a','b','c',…]
,而是
a,b,c,d,…
。现在,在Groovy代码中,您没有处理如何解析包含
逗号的字符串。将其设置为
H******
是无效的值。如果希望每分钟运行一次,请使用:
***
。或
H/2****
如果希望作业每2分钟运行一次或按acc运行一次。请参阅
cron
的工作原理/其帮助。Jenkins还将显示响应是否符合任何此类值,并告诉您该值是否有效,或者Jenkins将在何时安排下一次响应。这并不能解决问题。问题不在于选择正确的时间表表达式;但实际上,active choice完全忽略了
%par1=value1
@RaGe中提供的参数值,您可能是对的。似乎Active Choice插件(Uno插件)内部的等待期有助于“触发”/“计划运行”正常运行,因为用户可能运行参数化的计划运行,然后插件运行得非常快,甚至不需要等待获取因变量par2(取决于par1)的值。您可以通过创建自己的插件(分叉插件,通过添加等待进行更改)来测试这一点,并查看新的.jpi/.hpi是否适用于计划的par1/par2