Jenkins 获取 Git 的提交记录(Change Log)

工作中用 Jenkins 做 iOS 和 Android 的持续集成,之前实现的是当 git 有新代码提交的时候,就会自动编译并上传安装包到蒲公英,然后自动发送QQ群通知或者讨论组通知给相关小伙伴,方便其他小伙伴直接下载测试。但也有一点不方便的是,其他人下载还不能明确的知道这一版更新了什么。考虑到因为每次 git 的代码提交会说明这次提交修改了什么,所以就打算直接把获取 git 的提交记录显示在最终的编译完成的通知中,直观的显示给每个人。

最后收到通知的效果基本是下面这个样子:

 

由于 Jenkins 并没有官方的插件来做这个事,只能找现成的已经有的开源代码自己编译插件,最终也终于找到了。

那就直接开始做了。

下载源代码

首先,这个插件的源码地址是:https://github.com/daniel-beck/changelog-environment-plugin

下载源码。

安装 Maven

然后编译,编译需要 Maven,如果没有装Maven,下面有一个简单的安装步骤,如果安装过程中出现问题,还请自行谷歌解决。

下载地址:https://maven.apache.org/download.cgi

解压到某个目录下,例如:

/Users/XXX/apache-maven-3.5.0

然后

$ vi ~/.bash_profile

添加 Maven 相关环境

# Maven

export M2_HOME=/Users/sunbinhua/apache-maven-3.5.0

export PATH=$PATH:$M2_HOME/bin

保存退出,输入命令让 Maven 生效

$ source ~/.bash_profile

输入 mvn -v 来检查 Maven 是否生效。

编译源码生成 hpi

cd 到 changelog-environment-plugin-master 下,执行

$ mvn verify

经过比较长的时间,会在changelog-environment-plugin-master/target/下有个changelog-environment.hpi文件这就是我们需要的插件。

然后把生成的插件上传到 Jenkins。

使用方法

在项目的配置中,构建环境下面多了一项  Add Changelog Information to Environment

选中后,多了三项:Entry Format、File Item Format、Date Format

如下图:

 
 

Entry Format中添加 %3$s(at %4$s via %1$s),参数分别为ChangeLog内容,时间,提交人。

Date Format中添加 yyyy-MM-dd HH:mm:ss 就是时间格式。

在命令行中使用SCM_CHANGELOG获取即可,比如下图是我使用的地方

 




转自:https://www.jianshu.com/p/f03fc1bf5783

原文地址:https://www.cnblogs.com/cangqinglang/p/11190603.html