【转】获取Jenkins构建时Git Change Log

时间:2024-02-19 22:10:45

原文:https://www.jianshu.com/p/513ab6915dbd

 

 在基于Jenkins进行CI持续集成的工作,在构建后上传蒲公英时想将本次版本的git commit信息同步到蒲公英的下载页面。Jenkins每次构建都会根据Git 的提交记录生成一个Web页面来显示自上次构建之后的提交记录列表(如图1),但是Jenkins却并没有提供可以获取这个Strings的功能。 

 

1.Maven安装

    下载地址:https://maven.apache.org/download.cgi(如图)。

    将下载的压缩包解压到某个目录下,例如:/Users/用户名/apache-maven-3.5.3。

    在终端执行:

        $ vi ~/.bash_profile

        $ export M2_HOME=/Users/用户名/apache-maven-3.5.3  

        $ export PATH=$PATH:$M2_HOME/bin

    最后在终端执行如下命令来使.bash_profile生效:

        $ source ~/.bash_profile

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

 

 

2.插件安装

 Jenkins里面同样有人反馈了同样的需求,有人给出了一个插件解决获取git change log的需求,插件开源地址(https://github.com/daniel-beck/changelog-environment-plugin

2.1 因作者并没有将插件编译上传,所以我们需要将项目Clone到本地

2.1 然后在项目根目录下执行 mvn verify ,因为依赖较多,第一次build时间会比较漫长,需耐心等待

2.3 build完成之后项目根目录中“target”文件夹中会出现“changelog-environment.hpi”这个文件

(注:mvn verify 是Maven命令,文章最后简单说明如何安装),插件现已上传到GitHub上(https://github.com/KrisMarko/kr-changelog)。

3.使用

    在Jenkins的系统管理-> 管理插件-> 高级->上传插件,将刚刚编译生成的“changelog-environment.hpi”文件上传并安装到Jenkins中,安装完成后,会在“构建环境”中有“Add Changelog Information to Environment”选项,选中后会有Entry Format、File Item Format、Date Format三个可配置项,第一个就是填写提交日志输出格式的地方,采用的是Java String.format占位符的形式。其中可以使用四个参数,分别是:

1.提交的作者

2.提交的 ID

3.提交信息

4.提交时间(通过 Date Format 控制格式)

    例,我在Entry Format输入 %3$s (via %1$s)\n,然后有一条提交记录,提交信息为「fix bug」,提交者为 Kris.Marko,那么输出到环境变量的字符串就是 “fix bug (via Kris.Marko)\n” (后面的 \n 是为了多层转义,视使用情况请自行调整)。

    通过如上设置之后,在构建时就可以在shell中来获得SCM_CHANGELOG变量来取到更新日志了。比如自动上传更新信息到内测平台(如蒲公英)。