jenkins钉钉插件自定义

  • Post author:
  • Post category:其他


有时我们根据业务的需要,可能要在jenkins集成项目之后,在钉钉通知消息的时候,能区分是测试环境还是正式环境打包


1、下载钉钉源码:


https://github.com/jenkinsci/dingding-notifications-plugin

本地克隆之后,用Idea打开


2、目录结构:


a、修改config.jelly,增加如下代码到:

<f:entry title="打包类型" field="envType" description="自动获取参数化构建,表示打包环境.">
    <f:textbox  />
</f:entry>


b、

DingdingNotifier类,增加:

public String envType;

c、DingdingServiceImpl类,

private String envType;
private EnvVars env;

@Override
public void success() throws IOException, InterruptedException {
    String pic = "http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png";
    String title = String.format("%s%s构建成功,本次打包环境:%s", build.getProject().getDisplayName(), build.getDisplayName(),getEnvType());
    String content = String.format("项目[%s%s]构建成功, summary:%s, duration:%s", build.getProject().getDisplayName(), build.getDisplayName(), build.getBuildStatusSummary().message, build.getDurationString());

    String link = getBuildUrl();
    logger.info(link);
    if (onSuccess) {
        logger.info("send link msg from " + listener.toString());
        sendLinkMessage(link, content, title, pic);
    }
}

public String getEnvType() throws IOException, InterruptedException {
    env = build.getEnvironment(listener);
    return env.expand(envType);
}

其实就是把DingdingServiceImpl类中,实现接口的函数中的title内容改写

d、JobListener类,try-catch一下,刚抛出的异常

3、打包

首先确保,maven已经添加到环境变量中,切换到项目路径,cmd窗口运行,执行:mvn package

会在编译文件夹下生成:

4、切换到jenkins页面,清除钉钉之前的插件,

上传自定义插件,找到刚打包好的文件夹

上传成功之后需要重启jenkins才能生效,关闭窗口,切换到jenkins目录执行:java -jar jenkins.war –httpPort=8080

5、jenkins构建:

打包类型根据实际情况填入测试环境,还是正式环境,打包成功之后如下图:

参考:


https://blog.csdn.net/u011541946/article/details/78634786


https://blog.csdn.net/u011541946/article/details/78779921



版权声明:本文为qq_33278354原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。