Jenkins Job 构建动态参数配置

news/2024/9/19 3:45:48/文章来源:https://www.cnblogs.com/xuejie/p/18397232

在做jenkins项目时,有些参数不是固定写死的,而是动态变化的,这时我们可以用 Active Choices 插件来远程调用参数。

实现结果如下:

操作步骤:

 注意筛选关键字参数必须位于筛选列表的前面,如该文章示例keyword必须在affectedPlatformIds前面

 

 

 Groovy Script代码如下:

import groovy.json.JsonSlurper
def respText = "curl http://192.168.1.29:81/upgrade_platform/allList?keyword=${keyword}".execute().text
def slurper = new groovy.json.JsonSlurper() 
def pfm = slurper.parseText(respText) //parseText将json字符串转换为Map对象;JsonOutput类用于将Groovy对象转换为JSON字符串

html_to_be_rendered = "<div style=\"max-height:300px;overflow-y: scroll;width: 350px;\"><table><tr>"
pfm.each {html_to_be_rendered = """
    ${html_to_be_rendered}<tr><td><input name=\"value\" alt=\"${it.id}\" json=\"${it.id}\" type=\"checkbox\" class=\" \"><label title=\"${it.platform_name}\" class=\" \">${it.platform_name}</label></td></tr>
"""
}html_to_be_rendered = "${html_to_be_rendered}</tr></table></div>"return html_to_be_rendered

管理员用户登录后,允许上面的groovy脚本执行:

 

 

 

 其他代码groovy代码备份:

Active Choices Reactive Parameter

import groovy.json.JsonSlurper
def respText = "curl http://192.168.1.29:81/upgrade_platform/getAllPlatformName?keyword=${keyword}".execute().text
def slurper = new groovy.json.JsonSlurper() 
def pfm = slurper.parseText(respText) //parseText将json字符串转换为Map对象;JsonOutput类用于将Groovy对象转换为JSON字符串
return pfm

 

效果:

代码: 

Active Choices Parameter
Active Choices Reactive Reference Parameter

return ["web", "backend", "database"]
service_tier_map = ["web": [["service_name": "user_frontend", "release_tag": "1.0.0" ],["service_name": "admin_frontend", "release_tag": "1.0.2" ],],"backend": [["service_name": "admin_service", "release_tag": "2.1.0" ],["service_name": "finance_service", "release_tag": "2.2.0" ],["service_name": "payment_service", "release_tag": "3.2.0" ],],"database": [["service_name": "dynamo_db", "release_tag": "5.4.1"],["service_name": "mysql", "release_tag": "3.2.1"],["service_name": "postgresql", "release_tag": "1.2.3"],],
]html_to_be_rendered = "<table><tr>"
service_list = service_tier_map[tier]
service_list.each { service ->html_to_be_rendered = """
    ${html_to_be_rendered}<tr><td><input name=\"value\" alt=\"${service.service_name}\" json=\"${service.service_name}\" type=\"checkbox\" class=\" \"><label title=\"${service.service_name}\" class=\" \">${service.service_name}</label></td><td><input type=\"text\" class=\" \" name=\"value\" value=\"${service.release_tag}\"> </br></td></tr>
"""
}html_to_be_rendered = "${html_to_be_rendered}</tr></table>"return html_to_be_rendered

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/792254.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Latex使用中文或中英文混合使用

如果想显示中文内容或者中英文混用在开头部分添加包 \usepackage{xeCJK} 随后在设置中将编译方式改成 XeLaTex 即可。注意:可能与pdfLaTex编译方式产生的结果有区别。

12.面向对象(4)

MODULE 12 面向对象知道final修饰成员之后特点会使用静态代码块以及知道静态代码块的使用场景会使用匿名内部类一.权限修饰符(一)概述在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容 会有不同的访问权限(1)public:公共的,最高权限,被public修饰的…

css常见布局

两列布局 1、flex 2、float 3、position: absolute 三列布局 1、flex 2、float(圣杯布局,双飞翼布局) 3、position: absolute 圣杯布局 1、注意html结构是 main-> left -> right 把重要的内容放在前面,有利于seo 2、父级padding 3、三个元素都是float <div class=&q…

Hadoop 任务提交 class not fond exception

异常描述 在使用Java client 对yarn进行任务提交的时候有时候会出现 class not fond exception, 这个原因是因为某些类并没有被正确的打包.上述问题可以通过手动设置Jar包的方式来解决从而替换原本的setJarByClass上述的Jar 包为当前程序打包后的Jar, 可以使用Idea快速构建

DP优化——斜率优化

引言 在学数据结构优化dp,单调队列优化dp时都很快就懂了,四边形不等式优化dp看一看也懂了,只有斜率优化理解了一个月还不懂,最后在其他大佬和资料的帮助下成功学懂了,于是争取这篇题解在以后又不会的时候一遍就懂。前置数学知识 1.一次函数 初中数学知识,见八年级数学课本…

shotcut安装使用

Download双击安装下一步指定路径勾选所需要的安装完成选择素材先复制粘贴到时间线如果底部没有这几个工具,点击顶部[查看]->[布局]->[恢复默认布局]点击中间的位置操作切割后选择删除文件,输出,视频

记录 macos 链接 win10 wsl2 ubuntu clickhouse 记录

遇到了许多问题 顺序应该不同 首先就是 链接的客户端是 DBeaver 链接的时候要 选择版本 低版本的 用legacy, 驱动也很重要, 下不到驱动的可以用网上找的驱动来安装有的时候 会有类名的问题 但是报错很离谱 会报 dbeaver clickhouse 链接错误 code:46 Unknown function current…

Ubuntu Nvidia driver驱动安装(新)

前言 英伟达更新了安装驱动的方式,更新一下文档 旧文:Ubuntu Nvidia driver驱动安装及卸载 下载官方驱动安装 1.安装驱动前一定要更新软件列表和安装必要软件、依赖(必须) sudo apt-get update #更新软件列表sudo apt-get install -y g++ gcc make2.查看GPU型号(你自己知…

每个端侧产品都需要的用户体验监控

ARMS RUM 是阿里云应用实时监控服务(ARMS)下的用户体验监控(RUM)产品,覆盖 Web/H5、各类平台小程序、Android、iOS、Flutter、ReactNative、Windows、macOS 等平台框架。接入 SDK 后会主动采集端侧页面性能、资源加载、API 调用、异常崩溃、卡顿、用户操作、系统信息等数据…

【YashanDB知识库】主备延迟故障分析方法

【标题】主备延迟故障分析方法 【问题分类】故障分析 【关键字】Yashandb、主备延迟 【问题描述】当数据库备机出现回放延迟时,需要通过一些手段分析延迟的原因。通过数据库的系统视图或操作系统监控数据可以辅助分析回放延迟的瓶颈。 【问题原因分析】 备延迟手段 当前备库的…

主备延迟故障分析方法

【标题】主备延迟故障分析方法 【问题分类】故障分析 【关键字】Yashandb、主备延迟 【问题描述】当数据库备机出现回放延迟时,需要通过一些手段分析延迟的原因。通过数据库的系统视图或操作系统监控数据可以辅助分析回放延迟的瓶颈。 【问题原因分析】 备延迟手段 当前备库的…