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

作者: Tolecen 分类: iOS开发,方法技巧 发布时间: 2018-01-04 12:24

工作中用 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获取即可,比如下图是我使用的地方

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

4条评论
  • swindler022

    2018年3月8日 下午5:51

    比如我构建了5个版本,我想获取到第3次到第5次构建的changelog,请问这个插件可以获取到指定时间内的changelog吗?

    1. Tolecen

      2018年3月8日 下午8:22

      这个目前只能获取最后一次的~~

      1. swindler022

        2018年3月9日 上午10:09

        我想获取到指定时间内的changelog,并将这段时间内的changelog添加到邮件内,请问有没有什么思路或方法分享一下,谢谢

  • faith

    2018年5月9日 下午8:02

    Execute shell里面输入的内容,能放出来下吗?敏感的数据可以用*号代替的,想看下这里面怎么写的,拜谢

发表评论

电子邮件地址不会被公开。 必填项已用*标注