Jenkins插件开发——支持参数化

Jenkins插件开发——支持参数化

前言

在jenkins构建的时候,我们可以将一些经常会变化的参数值提取出来,使用参数化的方式,在每次构建的时候赋值。jenkins本身是支持这种能力的,本篇文章主要整理下对于自己开发的jenkins插件如何支持参数化。

具体实现

具体实现很简单,在jenkins的api中,提供如下几个方法,首先第一个是hudson.model.AbstractBuild#getEnvironment,该方法入参是hudson.model.TaskListener,返回类型是hudson.EnvVars,返回当前jenkins所有环境变量列表,具体实现可以参考下jenkins的源码。
在这里插入图片描述
第二个方法是hudson.Util#replaceMacro(java.lang.String, java.util.Map<java.lang.String,java.lang.String>),该方法传入变量参数和环境变量列表,该方法会返回参数变量解析之后的值。
在这里插入图片描述
所以,具体实现就是先获取所有的环境变量列表,然后再使用提供的replaceMacro方法解析变量,具体代码如下:

@Override
public boolean perform(AbstractBuild<?, ?> build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException {
    PrintStream logger = listener.getLogger();
    // 参数化
    EnvVars environment = build.getEnvironment(listener);
    String param = Util.replaceMacro(name, environment);
    logger.println("Hello " + param);
    ...
    return true;
}

验证

本次的代码还是继续沿用之前的博客中的源码,具体可以参考下我之前的jenkins插件相关的博客。

通过 mvn hpi:run 启动jenkins,通过 http://localhost:8080/jenkins/ 访问jenkins。

创建一个freestyle的任务,勾选This project is parameterized,添加一个String Parameter类型的参数,我这边添加一个参数名为name,默认值为yuanzhihao的参数。
在这里插入图片描述
之后在build标签,Add build step下面选择自己开发的插件MyPlugin,填入参数化的参数${name}。
在这里插入图片描述
构建项目,传入参数值。
在这里插入图片描述
构建结束,可以看到参数已经生效。
在这里插入图片描述

结语

代码地址:https://github.com/yzh19961031/blogDemo/tree/master/jenkinsPlugin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值