【转】获取Jenkins构建时Git Change Log
原文: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变量来取到更新日志了。比如自动上传更新信息到内测平台(如蒲公英)。
【转】获取Jenkins构建时Git Change Log的更多相关文章
- 使用jenkins 构建时,字体图标报错的问题。
最近一个项目开发中,我们在本地进行项目打包时,可以正常打包. 但是在使用jenkins构建时,一直报错,提示无法加载字体文件.can't resolve module '....xxxx.TTF ' ...
- python回调函数应用-获取jenkins构建结果
需求背景: 现在用jenkins构建自动化测试(2个job),公司现将自动化纳入到发布系统 要求每次构建成功之后,把测试结果发送给发布系统.这就需要先获取jenkins构建的结果,如果构建结束,才能发 ...
- jenkins 构建时显示git分支插件、显示构建分支插件
参数化构建分支 1.安装插件:Git Parameter 2.找到我们在Jenkins中建立的工程,勾选“参数化构建过程”,并如下配置 3.在“源码管理”中如下配置 Jenkins构建完显示构建用户和 ...
- jenkins构建&发布git托管的VS工程
顺便做个笔记,以防以后再踩坑:笔者用的是jenkins-1.620和git-2.7.2-64-bit.exe,操作系统是win10(本机) jenkins安装完成之后 如果想要配合git完成拉取代码. ...
- Jenkins构建时提示maven版本问题
在使用Jenkins进行项目构建的时候出现下面问题 [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were enc ...
- [Jenkins]Jenkins构建时提示java.io.IOException: No space left on device
突然发现Jenkins的Job全部都停了,打开Jenkins发现所有的slave机器,均提示: 点开Dead(!),提示Thread has died,如下图: 看图好像说是Jenkins所在的服务器 ...
- jenkins 构建时,取消构建测试类
如图 点击配置,添加clean install -Dmaven.test.skip=true 保存即可
- Jenkins之自动发送git变更到微信
当我们通过Jenkins构建job的时候,是可以获取到git Change Log 的信息, 即本次上线修改了什么功能,我们将这个信息发送到微信群相关人员可直接获取到上线变更信息, 这样就不需要人为的 ...
- Commit message 和 Change log 编写指南
来源:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit messa ...
随机推荐
- Codeforces Round #530 (Div. 2) D. Sum in the tree 树上贪心
D. Sum in the tree 题意 给出一颗树,奇数层数的点有值,值代表从1到该点的简单路的权值的和,偶数层数的点权值被擦去了 问所有节点的和的最小可能是多少 思路 对于每一个-1(也就是值未 ...
- 【正确使用vim编辑器的姿势】
"vi:可视化接口(Visual Interface) vim:是vi的增强版(vi iMprove) vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中 ...
- eureka服务只能设置8761,不然服务无法注册
原因是,eureka服务端和eureka的客户端在一个project下,只是属于不同的模块.所以出现了以上问题.分开项目就好了.
- codeforces 597 div2 E. Hyakugoku and Ladders(概率dp)
题目链接:https://codeforces.com/contest/1245/problem/E 题意:有一个10x10的网格,左下角是起点,左上角是终点,从起点开始,如图所示蛇形走到终点,每一步 ...
- 剑指Offer:面试题20:表示数值的字符串
记录一下书上的写法.很整洁,每个函数的功能都显而易见.自己开始写的一堆if else语句像是一坨屎.另外注释的地方短路效应也要注意一下.总之这题还挺考察代码素质的(我这种就不存在什么素质..乱糟糟一团 ...
- vs2017运行网站,代码停止,浏览器页面关闭问题解决
问题描述: 在项目开发过程中,如果程序出现了异常,我们一般都会暴露在浏览器中,但是最近我使用vs2017,发现项目一旦停止,浏览器也自动关闭了,没法查看具体错误详情(当然除了单步调试什么的),很是不爽 ...
- c++工程编译记录
test3.c #include <stdio.h> #include <cpptest/cpptest.h> int test(int argc,char **argv); ...
- 箭头函数 this指向问题
1.为什么要用箭头函数 简洁 易用 固定this 指向(箭头函数在this定义时候生效) 2.箭头函数分析this指向 1.this指向调用函数的对象 情况1 var obj={ a:"1& ...
- jeecg /ant-design-vuepro 前端使用
1.原生axios使用 <script> import Vue from 'vue'; import axios from 'axios'; axios.defaults.baseURL ...
- Knapsack Cryptosystem 牛客团队赛
时限2s题意: 第一行包含两个整数,分别是n(1 <= n <= 36)和s(0 <= s <9 * 10 18) 第二行包含n个整数,它们是{a i }(0 <a i ...