Jenkins 构建时动态获取参数

news2024/9/28 1:25:04

文章目录

    • 问题
    • 简介
    • Groovy 脚本配置
    • 进阶

问题

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

问题解决方案:执行构建前使用Groovy Scrip调用本地脚本,本地脚本执行获取参数的逻辑

本文所用环境:centos7 、jenkins2.107

简介

Active Choices 插件用于参数动态变化的 Jenkins 作业,可以是创建脚本、动态和交互式作业参数。Active Choices参数可以动态更新,并且可以呈现为组合框、复选框、单选按钮或丰富的 HTML UI 小部件。

Active Choices 参数使用 Groovy 或(可选)Scriptler Groovy 脚本编写脚本。这些自定义脚本支持使用 Jenkins Java API、系统环境变量、全局节点属性以及潜在的外部 Java 和 Javascript 库。

安装插件后,可以使用三种新参数类型:

  1. Active Choices Parameter
  2. Active Choices Reactive Parameter
  3. Active Choices Reactive Reference Parameter

注意:Reactive Parameter 参数允许参数显示为格式化的 HTML。使用此功能配置作业时,请注意参数的呈现方式以及它可能产生的安全问题

Active Choices 参数允许用户选择构建参数的值为:

  • 动态生成(使用 Groovy 或Scriptler脚本)
  • 根据其他 UI 参数动态更新
  • 多值(可以有多个值)
  • 使用各种 UI控件呈现,包括动态 HTML(请注意相关安全风险)

Groovy 脚本配置

参数化构建选择Active Choices Reactive Parameter,低版本只可选择Groovy Script
在这里插入图片描述
无论是Groovy 代码或 Scriptlet 脚本,该脚本必须返回java.util.List 、Array或java.util.Map,如下例所示:

return ['Option 1', 'Option 2', 'Option 3']

要解决本文问题我们设置如下Groovy代码:

def command = "sh get_list.sh"
def proc = command.execute()
proc.waitFor()
def list = []
list = "${proc.in.text}" .eachLine { line ->
    list << line
}
return list

注意get_list.sh在jenkins部署机器上,存放路径为jenkins项目启动路径,内容也较为简单,根据实际修改

echo "Option0"
echo "Option1"
echo "Option2"
echo "Option3"

进阶

  1. 如果我们想某些参数不可选或者默认选一个参数又如何设置呢?
    那就是Groovy返回值加上 :selected 或:disabled
    类似如下:
echo "Option0:selected"
echo "Option1"

  1. Active Choices Reactive 参数配置有一组与上面显示的 Active Choices 参数类似的选项。但是,该参数提供了附加的“引用参数”配置选项。
    即当任何“引用参数”发生更改时,这些参数会触发Active Choices Reactive参数的自动刷新
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Wlan——无线反制理论与配置讲解

目录 非法设备基本概念 非法设备的分类 如何识别非法设备的类型 非法设备判断流程 反制AP的工作模式 AP对于非法设备的检测模式 AP对于非法设备的反制模式 反制设备的工作原理 反制设备如何获取非法设备的信息 反制设备对非法设备反制的原理 如何通过空口抓包判断是…

iframe框架token失效重新登陆问题

在登录信息过期之后&#xff0c;或者也就是token过期后&#xff0c;要登出&#xff0c;跳转到登录页面重新登录来获取token等信息。 这时如果你用的是iframe框架的话&#xff0c;就会出现登录界面是嵌套在框架里面的情况&#xff0c;或者出现下图所示报错情况。 出现这种情况…

PowerBI 一些基础功能

1、PowerBI创建日期表 1.1、Power BI 日期表 - 知乎日期是做数据分析的时候使用最频繁的分析维度&#xff0c;一般建议建立单独的日期维度表&#xff0c;并与事实表的日期字段建立连接。 建立日期维度表可通过DAX函数的方式进行&#xff1a; 日期表 CALENDAR(DATE("2023&…

基于Springboot实现疫情网课管理系统项目【项目源码+论文说明】

基于Springboot实现疫情网课管理系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于疫情网课管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了疫情…

当我们谈论量化时,我们在谈论什么?量化投资常见策略有哪些?| 融券T0和高频交易详解【邢不行】

最近关于量化的争议不断&#xff0c;很多人甚至建议取缔量化。 部分人认为量化以高频交易配合融券变相实现T0&#xff0c;赚走了市场所有的钱&#xff0c;有失公正。 高频交易大家都听过&#xff0c;即凭借程序在几秒甚至几毫秒内完成一笔交易&#xff0c;有人认为这对还在盯盘…

ThreadLocal线程变量使用浅解

一、概述    ThreadLocal一般称为线程本地变量&#xff0c;它是一种特殊的线程绑定机制&#xff0c;将变量与线程绑定在一起&#xff0c;为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内&#xff0c; 在实际多线程操作的时候&a…

探索8个顶级的绘图工具

在数字时代&#xff0c;绘画已经成为一种常见的表达方式&#xff0c;不仅广泛应用于艺术创作领域&#xff0c;而且在教育、设计和商业领域发挥着重要作用。随着技术的进步&#xff0c;越来越多的计算机绘图软件出现&#xff0c;为用户提供了更多的选择。本文将推荐8个计算机绘图…

Linux文件与目录的增删改查

一、增 1、mkdir命令 作用: 创建一个新目录。格式: mkdir [选项] 要创建的目录 常用参数: -p:创建目录结构中指定的每一个目录,如果目录不存在则创建,如果目录已存在也不会被覆盖。用法示例: 1、mkdir directory:创建单个目录 这个命令会在当前目录下创建一个名为…

ELK 处理 SpringCloud 日志

在排查线上异常的过程中&#xff0c;查询日志总是必不可缺的一部分。现今大多采用的微服务架构&#xff0c;日志被分散在不同的机器上&#xff0c;使得日志的查询变得异常困难。工欲善其事&#xff0c;必先利其器。如果此时有一个统一的实时日志分析平台&#xff0c;那可谓是雪…

【python】exec()内置函数释义

【python】exec内置函数释义 官方释义样例注意事项拓展感谢及参考博文 官方释义 官方Python API文档镇楼 exec(object, globalsNone, localsNone, /, *, closureNone) 支持动态执行 Python 代码&#xff0c; object 必须是字符串或者代码对象。 需要特别注意以下两点&#xff…

Multi Modal Smart Diagnosis of Pulmonary Diseases

方法 体会 作者图2的字太小&#xff0c;每个图都用一样形式的block&#xff0c;流程图乱画&#xff0c;且不给代码&#xff0c;看来InCACCT不怎么样

Spring 复习笔记

目录 第一步存 Bean第二步获取并使用 Bean依赖查找的方式ApplicationContext vs BeanFactory 更简单的存储 Bean1. 配合五大类注解使用2. 方法上添加注解 Bean 更简单的获取 Bean Spring IoC 容器管理的资源就是对象&#xff0c;这个对象也叫做 Bean。Spring 作为一个 IoC 容器…

VTable: 不只是高性能的多维数据分析表格

VTable&#xff0c;面向多维分析与可视化的高性能表格组件 导读 VTable: 不只是高性能的多维数据分析表格&#xff0c;更是行列间创作的方格艺术家&#xff01; VTable是字节跳动开源可视化解决方案 VisActor 的组件之一。 在现代应用程序中&#xff0c;表格组件是不可或缺的…

面试金典--面试题 17.21. 直方图的水量(不困难的困难题)

文章目录 题目描述思路分析完整代码 题目描述 给定一个直方图(也称柱状图)&#xff0c;假设有人从上面源源不断地倒水&#xff0c;最后直方图能存多少水量?直方图的宽度为 1。 上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的直方图&#xff0c;在这种情况下&#xff0c;可以接…

适用于医美行业的微信管理系统

在当今这个数字化时代&#xff0c;微信已经成为人们日常生活中必不可少的社交工具之一。对于医美行业来说&#xff0c;微信也是一个极为重要的营销渠道。 医美行业面临的一些困境 ①门槛低&#xff0c;竞争大&#xff0c;需要进行大量营销&#xff0c;来走出红海 ②医美种类繁…

第三章 栈、队列和数组

第三章 栈、队列、数组 栈栈的基本概念栈的顺序实现栈的链接实现栈的简单应用和递归 队列队列的基本概念队列的顺序实现队列的链接实现 数组数组的逻辑结构和基本运算数组的存储结构矩阵的压缩存储 小试牛刀 栈和队列可以看作是特殊的线性表&#xff0c;是运算受限的线性表 栈 …

Nmap扫描教程-01

Nmap扫描教程 SYN扫描操作及原理&#xff08;半连接扫描&#xff09; 1. 第一步打开wireshark选着你要监听网卡 2. 在kail中输入命令找到我们需要扫描主机的ip地址 arp-scan -l -I eth1 3. 在kail中输入命令进行SYN半连接扫描 nmap -sS -p80 --reason -vvv 172.30.1.128 -s…

这是要被奖金给砸晕啊......

嗨咯&#xff0c;大家好&#xff0c;我是K同学啊&#xff01; 由于最近训练营中经常有同学问我&#xff0c;有哪些比较好的知识变现且可以提升自己专业水平的渠道&#xff0c;这几天整理出了一个个人认为还不错的关于深度学习方面的大赛&#xff08;就奖金比较多而已&#xff…

服务器启用SGX(以PowerEdge R750为例)

一、检查处理器是否支持SGX 在shell中输入以下命令查看CPU型号 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c在Product Specifications中找到对应的处理器参数信息&#xff0c;如果支持SGX&#xff0c;可以在Security & Reliability中看到如下信息 二、以“软…

【centos7安装ElasticSearch】

概述 最近工作中有用到ES &#xff0c;当然少不了自己装一个服务器捣鼓。本文的ElasticSearch 的版本&#xff1a; 7.17.3 一、下载 ElasticSearch 点此下载 下载完成后上传至 Linux 服务器&#xff0c;本文演示放在&#xff1a; /root/ 下&#xff0c;进行解压&#xff1…