xietao3

探索之旅,学习之路

你好,我是谢涛!欢迎来到我的个人主页.
90后代码搬运工,目前就职于上海天天果园,任职iOS高级开发工程师。


Jenkins+fir 上传更新日志

Jenkins

iOS开发自动打包应该很多人用了,但是其中还有一些地方不够完美,比如说打包上传成功fir和邮件没有更新日志内容,嗯,我要说的就是这个。

背景

在日常开发中持续集成可以节省开发者很多时间和精力,fir下载地址和邮件没有更新日志内容,这样无法通知测试人员具体修改内容,造成了很多不便,所以有了这个需求,下面贴一张没有更新日志和有更新日志对比图。

对比.png

步骤

前提:首先你得先折腾好打包工具吧,现在的教程都已经很多了,贴一下当时我看的教程: 1.Jenkins+GitHub+Xcode+fir自动打包教程
2.我在集成中遇到的一些问题和解决方案

  1. 首先安装插件:Environment Injector Plugin,这里是下载地址,下载成功后打开Jenkins->系统管理->管理插件->高级->拖至页面底部上传插件->选中文件点击上传,提示成功后返回首页。 上传插件.png

  2. 进入现有的项目,输出commit日志内容:增加构建步骤->Execute shell->在Command输入以下内容(注意替换username和password):
    CHANGELOG=$(curl -u username:password "http://localhost:8080/job/$JOB_NAME/$BUILD_NUMBER/api/xml?wrapper=changes&xpath=//changeSet//comment" | sed -e "s/<\/comment>//g; s/<comment>//g; s/<\/*changes>//g" | sed '/^$/d;G')
    echo CHANGELOG=$CHANGELOG > change_log_vars
    

    输出日志

  3. 设置commit日志保存路径:增加构建步骤->Inject environment variables->在Properties File Path输入change_log_vars日志路径

  4. 输出commit日志发布者:增加构建步骤->Execute shell->在Command输入以下内容(注意替换username和password):
    CHANGEAUTHOR=$(curl -u username:password "http://localhost:8080/job/$JOB_NAME/$BUILD_NUMBER/api/xml?wrapper=changes&xpath=//changeSet//fullName" | sed -e "s/<\/fullName>//g; s/<fullName>//g; s/<\/*changes>//g" | sed '/^$/d;G')
    echo CHANGEAUTHOR=$CHANGEAUTHOR > change_author_vars
    

    输出用户名

  5. 设置commit日志发布者保存路径:增加构建步骤->Inject environment variables->在Properties File Path输入change_author_vars用户名路径

  6. 获取到commit日志后发给fir:增加构建后操作步骤->Upload to fir.im->在fir.im Token中输入你从fir获得的token,然后在Build Notes中输入:
    $CHANGELOG
    by $CHANGEAUTHOR
    

注:如果没有安装fir插件点击这里下载,和步骤1一样安装即可。 fir

结语

虽然是个小细节的东西,但是很实用。

最近的文章

呦~ 玩转Git 多远端的应用

Git使用小技巧—食之无味,弃之可惜,坚持不铺张浪费的原则。背景对比GitHub和Bitbucket各有优劣势(国内的不敢用),单一使用都是各种限制,比如说GitHub什么都好就是私有仓库要收费,而Bitbucket虽然免费,但是又各种卡,推送和拉取都比较慢,我们的口号是鱼和熊掌兼得,取二者之长。文章结尾处还总结了两点妙用。 平台 私有仓库 io速度 使用频率 Github 收费 ...…

继续阅读
更早的文章

编程秘籍之四两拨千斤-递归

刷了一段时间剑指offer的算法题,收获了很多,其中对递归的印象尤其深。递归给我一种四两拨千斤的感觉。背景递归,一种能够装逼的编程技巧。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量,在算法题中有广泛的应用。掌握递归的4个要点写好一个递归算法,主要是把握好如下三个方面:1. 正确的时机退出。递归很容易造成死循...…

继续阅读