Windows系统下基于jenkins+github+fir.im的Android项目持续化集成实例
1.Jenkins下载
选择windows平台
2.安装步骤 安装步骤原文
2.1下载合适版本然后解压后看到:jenkins.msi 双击打开
2.2点击 Next ,选择安装的目录,例如 D:\Porgram Files\Jenkins ,这个安装目录最好记得保存下来,以后要用到
2.3点击 Install – 安装成功
2.4点击 Finish ,出现启动 Jenkins,等待启动完成
2.5启动后出现如下界面:
复制上图标红的路径:D:\Porgram Files\Jenkins\secrets\
选中initialAdminPassword文件右键选择用记事本打开
复制里面的文本 我这里文本为:f7ceadf2bb7c44d59e3b955bb1c2c63f
粘贴到第7步的图中的Administrator password的文本框中 然后点击 Continue 按钮
出现下面界面 等待一会
2.6等待一会出现以下界面:
点击 Install suggested plugins Install plugins the Jenkins community finds most useful. 安装插件,这里等待时间可能会比较长
如果安装出错,点击 Retry 安装重试安装
2.7安装成功后出现以下界面
填写以后登录Jenkins的账号和密码
添加完成后点击 Save and Finish 按钮
到此Jenkins已经安装完成了
——————————————–重点来了——————————–
3.开启jenkins之旅
3.1创建项目
进入主界面点创建一个任务,选择创建自由风格任务。
3.2安装插件
下载 fir.im 的上传插件
fir.im 插件下载地址
进入 Jenkins 管理界面后,点击左侧进入 系统管理
然后找到 管理插件 并点击进入
进入插件管理后,点击 高级 选项卡
然后在页面找到 上传插件,选择已下载好的 fir.im jenkins 插件文件路径,并点击 上传 等待安装成功。
3.3源码管理
我们选择Git。填入信息。新手建议择https风格的仓库链接,这样直接输入账号和密码就可以用了。选择你的分支。
3.4构建器触发
每隔10分钟检查代码是否更新,有更新的话进行构建
3.5构建
选择Invoke Gradle Script
配置如下
3.6构建后操作
找到 增加构建后操作步骤 ,并选择 Upload to fir.im 添加到 Jenkins 项目中。
添加成功后开始配置各种参数,如图显示:
配置插件
1.fir.im Token(必填)
fir.im Token 查看方法:请登录 fir.im 后,点击头像选择 API token 进行查看
2.IPA/APK Files(可选)
接下来,选择生成 ipa/apk 文件路径
注意:如果没有填写该选项,插会件自动默认查找 Jenkins 创建的项目目录下的 apk/ipa 文件 >
3.BugHD token(可选)
作用:BugHD上传 mapping.txt/dSYM 文件 API 的调用权限
注意:如果需要上传符号表则是必填项;不需要上传混淆表,则不需要 填写
BugHD token 查看方法:请访问BugHD API token ,登录后进行查看。
4.BugHD project ID(可选)
作用:判断具体上传到指定的 bughd 项目
注意:如果需要上传符号表,则是必填项;不需要上传则不用填写
BugHD project ID 查看方法: 请访问 BugHD Projects,登录后找到你要上传符号表的项目,进入该项目,选择 项目设置 选项卡进行查看。
5.dSYM File or mapping File(可选)
作用:选择生成 dSYM/mapping.txt 文件路径
注意:如果需要上传符号表,则是必填项;不需要上传则不用填写
6.Build Notes(可选)
作用:上传 fir.im 后,可显示出更新日志
3.7配置项目
去系统管理里面,点系统设置:
在全局属性里面设置ANDROID_HOME信息,如果你把Android home配置全局变量,这步可以省略。
在Extended E-mail Notification里面设置邮件信息(可选)
——————————————–end———————————————————————-
app: build.gradle文件,配置如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "com.example.kkk"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
signingConfigs {
release {
storeFile file(RELEASE_JKS_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
//忽略警告信息
lintOptions {
checkReleaseBuilds false
abortOnError false
}
buildTypes {
debuge {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
def apk = output.outputFile
if (apk != null && apk.name.endsWith('.apk')) {
//${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}
output.outputFile = new File(apk.parent + "/", "atest.apk")
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.4.0'
}
gradle.properties里添加
RELEASE_KEY_PASSWORD=123456
RELEASE_KEY_ALIAS=atest
RELEASE_STORE_PASSWORD=123456
RELEASE_JKS_FILE=../atest.jks
生成的apk路径:D:\Program Files (x86)\Jenkins\workspace\atest\app\build\outputs\apk
(注:Androidstudio上运行可以的话,构建没问题。release要有签名)