Jenkins 提供了相关的插件,登陆 jenkins,点击"Manage Jenkins",选择“Mange Plugins”点击“Avzilable”,搜索“Gradle”选中“Gradle Plugin”点击安装插件,安装后好如下图:
使用Jenkins进行Android自动打包及SonarQube代码自动检测
下载gradle到jenkins服务器,将文件解压至/usr/local目录下,如图:
使用Jenkins进行Android自动打包及SonarQube代码自动检测
需要配置Gradle目录的环境变量,点击"Manage Jenkins",选择“Global Tool Configuration”,填入jenkins服务器上的Gradle 客户端路径,点击保存。如图:
使用Jenkins进行Android自动打包及SonarQube代码自动检测
在Jenkins中点击新建,输入Job名字,由于Jenkins会根据Job名字生成目录所以建议使用英文不要使用中文,然后选择构建一个自由风格的软件项目,然后点击OK进入配置页面,使用Jenkins进行Android自动打包及SonarQube代码自动检测
ENVIRONMENT表示构建版本是Release版还是Debug版,这样可以区分App是正式版本还是内容测试版本。
使用Jenkins进行Android自动打包及SonarQube代码自动检测
使用Jenkins进行Android自动打包及SonarQube代码自动检测
使用Jenkins进行Android自动打包及SonarQube代码自动检测
使用Jenkins进行Android自动打包及SonarQube代码自动检测
PRODUCT_FLAVOR_BUILD表示App构建的平台
使用Jenkins进行Android自动打包及SonarQube代码自动检测
使用Jenkins进行Android自动打包及SonarQube代码自动检测
PRODUCT_FLAVOR表示App的渠道
使用Jenkins进行Android自动打包及SonarQube代码自动检测
GIT_TAG用于在打包时选择使用仓库上哪个分支或者TAG,其中Parameter Type可以选择Tag、Branch、Branch or Tag或者revision,这里我们选择Branch or Tag
使用Jenkins进行Android自动打包及SonarQube代码自动检测
使用Jenkins进行Android自动打包及SonarQube代码自动检测
APP_VERSION表示APP的版本号,这里添加这个参数是为了能够让运维人员在App发布时能够指定发布的版本号。
使用Jenkins进行Android自动打包及SonarQube代码自动检测
源码管理
我们公司使用Gitlab进行代码管理,这里选择git,然后输入仓库地址,并在Branch Specifier绑定GIT_TAG变量,这样GIT_TAG会自动读取仓库上的分支和TAG列表。
使用Jenkins进行Android自动打包及SonarQube代码自动检测
构建
使用Jenkins进行Android自动打包及SonarQube代码自动检测
选择好Gradle的版本,在Tasks上输入:clean assemble'${PRODUCT_FLAVOR_BUILD}''${ENVIRONMENT}' --stacktrace --debug,按图输入即可。
使用Jenkins进行Android自动打包及SonarQube代码自动检测
在新建Job的时候,jenkins会默认新建Job任务在服务器器。
使用Jenkins进行Android自动打包及SonarQube代码自动检测
构建时需要用到两个脚本,Andriod开发工程有只需要向开发工程师要,将两个文件拷贝到jenkins服务器即可
使用Jenkins进行Android自动打包及SonarQube代码自动检测
使用SonarQuber来分析代码
使用Jenkins进行Android自动打包及SonarQube代码自动检测
sonar.projectKey=android
sonar.projectName=android
sonar.projectVersion=1.0
sonar.language=java
sonar.java.binaries=/var/lib/jenkins/workspace/android/yaok
sonar.sources=/var/lib/jenkins/workspace/android/yaok/src
点击保存。
选择好需要构建的参数,选择开始构建,每一次构建都会自动从git拉取最新的代码.第一次构建Jenkins需要下载相应的jar包,耗时会比较久.
使用Jenkins进行Android自动打包及SonarQube代码自动检测
查看构建结果:
使用Jenkins进行Android自动打包及SonarQube代码自动检测
在新建的 Jenkins 项目的构建的 Console Output 中可以得到 SonarQube 分析结果的链接,如图:
分析结果报告
使用Jenkins进行Android自动打包及SonarQube代码自动检测