Michael

写写代码,说说人生

您好,我是Michael,欢迎来到我的个人家园。
代码搬运工,目前就职于XX证券,努力修行中。


H5 / Java / Objc / Swift / Vue / RN

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 收费 ...…

项目管理-SVN与GIT继续阅读
更早的文章

所有权宣言 - Swift 官方文章 Ownership Manifesto 译文评注版

Swift 团队最近在邮件列表里向社区发了一封邮件,讲述了关于内存所有权方面的一些未来的改变方向。作为上层 API 的使用者来说,我们可能并不需要了解背后所有的事实,但是 Apple 的这封邮件中对 Swift 的值和对象的内存管理进行了很全面的表述,一步步说明了前因后果。如果你想深入学习和了解 Swift 的话,这篇文章是非常棒的参考资料。我尝试翻译了一下全文,并且加上了一些自己的注解。虽然这篇文章比较长,但是如果你想要进阶 Swift 的话,不妨花时间通读全文 (甚至通读全文若干遍)。...…

能工巧匠集继续阅读