Jenkins+Gradle+Git+加固 持续集成、打包、发布

前言

    Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。Jenkins 的前身是Hudson是一个可扩展的持续集成引擎(>_<不废话了,入正题)  公司好几个项目、版本迭代快,内部测试每天都要出版本,手动做容易出错&&需要花费很多时间做重复事,我们看看那些过程可以自动化,手动打包发布步骤:git获取对应branch最新code,检查java类的配置(debug、内外网环境)以及AndroidManifest.xml的version修改;接下来Generate Signed APK;加固apk多渠道包;获取apk dex大小(做apk防反编译验证);将加固好的apk上传到对应服务器;接下来我们把这些步骤自动化掉。

Jenkins安装

    自己去官网下载安装;

Jenkins配置

    到系统管理>管理插件>可选插件 安装Jenkins Gradle plugin、git plugin、git parameter;

     
    全局工具配置,JDK、Git、Gradle、Ant、Maven;
   
   
    需要注意jdk和gradle版本需要和build.gradle里的保持一致,不然打包会报错。

Jenkins新建任务

点击新Job,输入任务名称选中构建一个自由风格的软件项目,点击OK,跳到配置页面;
接下来进入关键部分>_<

选择参数化构建,选项参数APP_VERSION,选项里填入版本


选项参数RELEASE_TYPE,内外网环境


git Parameter选择,git branch选项


源码管理

选择git,branch的地方需要特别注意,内容填$BRANCH,使用上边的git parameter的选择;


构建

接下来我需要写一个工具,来修改我的java code里关于debug、内外网环境、AndroidManifest.xml,版本号参数检查和修改,我写了一个checkconfig.jar,在建了一个build_after.bat,传入上边配置的参数APP_VERSION,选择Execute WIndows batch command,填入build_before %APP_VERSION%


打包release前的准备工作做好后,接下来执行打包assembleRelease;选Invoke Gradle script,选中Invoke Gradle,版本选中自己项目需要的(在全局配置设置),Tasks输入clean assembleRelease,这里有坑,需要留意这个选项, 【Force GRADLE_USER_HOME to use workspace】,需要勾选


当包打好后,我们需要对apk进行加固,我在新建了一个build_after.bat,在这里边进行加固已经获取dex大小等处理;



构建后操作

到这里,apk包都已经生成,接下来就是把这些包同步到服务器,重新建了一个项目upload来做这个事,当app执行完自动执行upload上传,这个没有什么好说的,就不上图了。


一切就绪,按Build with Parameter,选择相应版本内外网环境,狗。狗。狗。。。



这个过程坑比较多,有问题留言,一起探讨。