原文: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的更多相关文章

  1. 使用jenkins 构建时,字体图标报错的问题。

    最近一个项目开发中,我们在本地进行项目打包时,可以正常打包. 但是在使用jenkins构建时,一直报错,提示无法加载字体文件.can't resolve module '....xxxx.TTF ' ...

  2. python回调函数应用-获取jenkins构建结果

    需求背景: 现在用jenkins构建自动化测试(2个job),公司现将自动化纳入到发布系统 要求每次构建成功之后,把测试结果发送给发布系统.这就需要先获取jenkins构建的结果,如果构建结束,才能发 ...

  3. jenkins 构建时显示git分支插件、显示构建分支插件

    参数化构建分支 1.安装插件:Git Parameter 2.找到我们在Jenkins中建立的工程,勾选“参数化构建过程”,并如下配置 3.在“源码管理”中如下配置 Jenkins构建完显示构建用户和 ...

  4. jenkins构建&发布git托管的VS工程

    顺便做个笔记,以防以后再踩坑:笔者用的是jenkins-1.620和git-2.7.2-64-bit.exe,操作系统是win10(本机) jenkins安装完成之后 如果想要配合git完成拉取代码. ...

  5. Jenkins构建时提示maven版本问题

    在使用Jenkins进行项目构建的时候出现下面问题 [INFO] Scanning for projects... [WARNING] [WARNING] Some problems were enc ...

  6. [Jenkins]Jenkins构建时提示java.io.IOException: No space left on device

    突然发现Jenkins的Job全部都停了,打开Jenkins发现所有的slave机器,均提示: 点开Dead(!),提示Thread has died,如下图: 看图好像说是Jenkins所在的服务器 ...

  7. jenkins 构建时,取消构建测试类

    如图 点击配置,添加clean install  -Dmaven.test.skip=true 保存即可

  8. Jenkins之自动发送git变更到微信

    当我们通过Jenkins构建job的时候,是可以获取到git Change Log 的信息, 即本次上线修改了什么功能,我们将这个信息发送到微信群相关人员可直接获取到上线变更信息, 这样就不需要人为的 ...

  9. Commit message 和 Change log 编写指南

    来源:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html Git 每次提交代码,都要写 Commit messa ...

随机推荐

  1. Iris项目结构

  2. 软件工程2020第一次作业(by cybersa)

    1 作业描述 作业属于哪个课程 2020春福大软工实践W班 这个作业要求在哪里 寒假作业(1/2) 这个作业的目标 建立博客.掌握markdown语法,学习写博客,回顾,总结,展望自己的学习历程 作业 ...

  3. 微信小程序 购物车流程

    购物车流程 一.需求分析 a:全选,单选,根据选中的计算数目和总价 b:单个商品加减 c:删除一个商品 wxml 布局 <view> <view v-if="flag&qu ...

  4. python开发基础04-函数、递归、匿名函数、高阶函数、装饰器

    匿名函数 lamba lambda x,y,z=1:x+y+z 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函 ...

  5. sqlmap使用教程(超详细)

    -u 指定目标URL (可以是http协议也可以是https协议) -d 连接数据库 --dbs 列出所有的数据库 --current-db 列出当前数据库 --tables 列出当前的表 --col ...

  6. PHP 源码 —— is_array 函数源码分析

    is_array 函数源码分析 本文首发于 https://github.com/suhanyujie/learn-computer/blob/master/src/function/array/is ...

  7. Panda的学习之路(1)——series 和 Dataframe

    一.Series panda最基本的对象 # pandas的基础s=pd.Series([1,3,6,np.nan,44,1])#建立个简单的基本对象 类似一个一位数组print("建立个简 ...

  8. Docker - dockerhub 相关命令

    1. 概述 水一发 docker 命令行里 dockerhub 相关的命令 2. 准备 有一个 dockerhub 的账号 ref dockerhub 3. 命令 登录 docker login 概述 ...

  9. Go递归

    1. 递归介绍 package main import ( "fmt" ) func test(n int) { if n > 2 { n-- test(n) } fmt.P ...

  10. P & R 10

    作为一个后端设计者,所需要掌握的技能其实就是熟练的利用工具,为自己服务. 需要的知识是什么?说的简单点,就是如何把设计的PPA搞上去. 说的复杂点,那就得从PPA需要注意的每个点去一一剖析.这个就太需 ...