公司一直使用的是人肉打包的方式,各种环境,配置项的变更,改来改去,非常容易出错,也影响开发人员的日常开发。特地研究下Jenkins来改善这一工作流程。

首先需要下载Jenkins.https://jenkins.io/download/ 由于我是Mac,原先使用Mac OS X 时,jenkins会自动安装在共享目录下并新建jenkins用户,实际使用中发生了很多文件权限的烦恼,这次我直接下载个war,到下载目录下用命令行
java -jar jenkins.war。启动

jenkins自动化打包python jenkins自动打包app_Android

基础的配置后,我们在游览器中进入主页面
下面是插件的安装,包含了git ,git parameter. gradle

jenkins自动化打包python jenkins自动打包app_Jenkins_02

jenkins自动化打包python jenkins自动打包app_ci_03

其次在系统设置中去设置ANDROID_HOME。
全局工具配置 中设置java,gradle,git工具。

jenkins自动化打包python jenkins自动打包app_Jenkins_04

接着创建新任务,

jenkins自动化打包python jenkins自动打包app_Jenkins_05

jenkins自动化打包python jenkins自动打包app_Android_06

主要是创建参数化构建过程,添加选项,比如取哪个分支,配置什么环境的访问地址(内网测试环境或者外网的生产环境,版本号,版本名称等)

jenkins自动化打包python jenkins自动打包app_ci_07

jenkins自动化打包python jenkins自动打包app_jenkins自动化打包python_08

参数化构建需要勾选build中的pass all job parameters as Project properties。这样你上面的选项才会在构建项目中生效。

jenkins自动化打包python jenkins自动打包app_jenkins自动化打包python_09

git代码仓库的访问地址设置。

jenkins自动化打包python jenkins自动打包app_ci_10

下面看看我们的项目中相应的变动

首先在gradle.properties中加入 environment. appVersionCode,appVersionName.

jenkins自动化打包python jenkins自动打包app_Jenkins_11

在app-gradle文件中 去设置versionCode ,versionName, 加buildConfigField字段:environment.

jenkins自动化打包python jenkins自动打包app_jenkins自动化打包python_12

最后在项目中地址设置的地方判断传递进来的构建地址。

jenkins自动化打包python jenkins自动打包app_自动发布_13

Build with Parameters 选择构建配置,选择分支,环境。。。点击Build按钮后,会在本地项目的build文件夹下找到你要的包。

jenkins自动化打包python jenkins自动打包app_自动发布_14

另外加上fir.im上传插件会自动将包发布到fir.im上,提供下载。还是非常方便

http://blog.fir.im/jenkins/

jenkins自动化打包python jenkins自动打包app_Android_15

最后再加个SCM,每分钟检测代码库的状态,如果有新的push,就构建发布到fir.im。这下测试同学可以守着一个url,拿到开发包了。

jenkins自动化打包python jenkins自动打包app_Jenkins_16