【问题标题】:Jenkins change choice parameter value automatically based on the week dayJenkins 根据工作日自动更改选择参数值
【发布时间】:2020-03-12 10:59:23
【问题描述】:

在我的詹金斯工作中,我有一个包含 4 个值(val1、val2、val3、val4)的选择参数。

是否可以根据周期性的时间事件动态设置选择参数值?

更准确地说,我想在一年中的每个星期一动态更改此值。

例如:

Monday March 16 => it takes val1 
Monday March 23 => it takes val2 
Monday March 30 => it takes val3 
Monday April 6  => it takes val4 
Monday April 13 => it takes val1

等等。

【问题讨论】:

  • 您是否安装了 Active Choice 插件?
  • 我认为 Active Choice 不支持这个@MattSchuchard
  • 您需要它来扩展参数类以动态生成这些选择。

标签: jenkins configuration continuous-integration jenkins-pipeline jenkins-plugins


【解决方案1】:

所以,你的问题基本上可以归结为两个:

  1. 如何根据当前日期以编程方式确定要选择的值?
  2. 了解了这一点后,如何使该值成为管道的 choice 参数中的默认值?

考虑到您自己在 #1 方面做得很好(可能包括获取周数并将余数除以 4),让我们来解决第二个问题。

要根据任意 Groovy 脚本的结果修改 choices 参数,您可能希望在声明式管道之前运行脚本化管道,如下所示:

def use_as_default = getValToUseAsDefault() // val1 on March 16, etc.

def list_of_vals = []

list_of_vals += use_as_default // first in the list will get to be selected

if (! ("val1" in list_of_vals) ) { list_of_vals += "val1"}
if (! ("val2" in list_of_vals) ) { list_of_vals += "val2"}
if (! ("val3" in list_of_vals) ) { list_of_vals += "val3"}
if (! ("val4" in list_of_vals) ) { list_of_vals += "val4"}

list_of_vals = Arrays.asList(list_of_vals)

pipeline
{
    agent any

    parameters
    {
        choice(name: 'VALS', choices: list_of_vals, description: 'Choose value')
    }
...
}

def getValToUseAsDefault() {
   // left as exercise to OP
   return "val1"
}

【讨论】:

  • 您可能想问一个问题“我如何使用 Groovy 获得周数”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 2017-09-20
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多