jenkins - Jenkins 根据工作日自动更改选择参数值
问题描述
在我的詹金斯工作中,我有一个包含 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
等等。
解决方案
所以,你的问题基本上可以归结为两个:
- 如何根据当前日期以编程方式确定要选择的值?
- 弄清楚这一点后,如何使该值成为
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"
}
推荐阅读
- deployment - 部署到 Netlify 一个普通的 JS 应用程序时出现问题
- python - 无法检查 Discord.py 中的反应
- python-jira - 通过 Python 将动态验收标准插入自定义字段
- python - 如何使图像在 pygame 上消失?
- ios - SwiftUI:GMSMapView 不符合协议 UIViewRepresentable
- bash - cURL 使用来自用户的输入作为 url
- xml - 基于多级 xml 中的标头级别条件填充空节点
- azure - Azure DevOps Yaml:从变量的 Azure KeyVault 任务中获取秘密变量
- python-3.x - 只有从我的 Facebook 个人资料发送到机器人的消息才会触发对我的 webhook 的调用
- r - R,dplyr:使用动态变量访问表名