首页 > 其他分享 >Jenkins Job 构建动态参数配置

Jenkins Job 构建动态参数配置

时间:2024-09-04 19:37:06浏览次数:9  
标签:rendered name service tag Job html 构建 release Jenkins

在做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

 

 

标签:rendered,name,service,tag,Job,html,构建,release,Jenkins
From: https://www.cnblogs.com/xuejie/p/18397232

相关文章

  • 自我主体意识构建与形成
    人是如何构建出自我主体意识,形成“自我”的?依慧心理根据柏拉图的哲学理论,他将这个世界分为里三个部分:理念世界、现实世界、模仿世界。简单的来理解,就是当我们提到猫的时候,我们脑子中首先是有一个猫的概念,它是有毛、有爪子、会卖萌的大眼睛、拉屎还很臭,一个完美的理念方式......
  • 构建专业技能:MySQL数据备份策略的培训与实践
    数据备份是数据库管理中的一项基础且关键的任务,它直接关系到数据安全和业务连续性。在MySQL环境中,有效的数据备份策略培训对于确保团队成员能够正确执行备份操作、理解备份原理以及在必要时进行数据恢复至关重要。本文将详细介绍如何在MySQL中实现数据备份的策略培训,包括培......
  • 构建数据恢复的坚实防线:MySQL数据恢复策略的文档化实践
    数据恢复策略的文档化是确保企业在面临数据丢失或损坏时能够迅速、有效地恢复数据的关键步骤。在MySQL数据库环境中,这一过程尤为重要,因为良好的文档化不仅有助于规范恢复流程,还能提高团队的响应速度和恢复成功率。本文将详细探讨如何在MySQL中实现数据恢复策略的文档化,包括......
  • 掌握检索技术:构建高效知识检索系统的架构与算法12
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 掌握检索技术:构建高效知识检索系统的架构与算法29
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 掌握检索技术:构建高效知识检索系统的架构与算法27
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 基于Prometheus和Grafana的现代服务器监控体系构建
    1.安装PrometheusPrometheus是一个开源的监控系统和时间序列数据库,适用于记录实时的度量指标。•下载并安装Prometheus:•前往Prometheus官方网站下载适用于您操作系统的版本。•解压并配置prometheus.yml文件,定义抓取目标(targets),如服务器、应用程序等。•配......
  • Node.js构建千万级高可用企业级应用,深入六大核心业务场景
    Node.js构建千万级高可用企业级应用:‌深入六大核心业务场景Node.js,‌作为一种基于ChromeV8JavaScript引擎构建的开源运行时环境,‌已经在企业级应用中展现出其独特的优势。‌特别是在处理高并发、‌实时性要求高的应用场景中,‌Node.js凭借其非阻塞I/O模型、‌事件驱动特性,‌成为......
  • 构建私有CA和证书
    一、准备两台虚拟机192.168.252.148CA192.168.252.149客户端二、构建私有CA192.168.252.148CA安装openssl1.检查是否存在rpm-qaopenssl2.安装或者更新opensslyuminstallopensslopenssl-devel-y查看CA相关配置/etc/pki/tls/openssl.cnf这个文件是CA的配置......
  • JobSystem使用范例二:动态添加移除Transform单位,寻找最近目标
    如何试用TransformAccessArray|添加/移除Transform到TransformAccessArray中执行   以下是寻找最近目标的示例。usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.Jobs;usingUnity.Mathematics;usingUnity.Jobs;usingUnity.Collect......