搭建jenkins并简单构建apk

由于最近同事提出说jenkins会方便测试人员去下载最新版的apk,而不用我们编译给他们。所以我就简单的入门一下jenkins并记录下来,看到网上关于jenkins还有很多应用,等以后有时间了就再继续看看。
先记录一下简单的使用jenkins打包apk。

1.下载。
在官网下载:https://jenkins.io/download/
官网上有长期稳定版和一周新鲜版,可以根据所需要的选,不过一般都是选择长期稳定。然后就根据系统下载相应的版本。

step 1
step 1

2.安装。
安装过程就省略了(会选择jenkins的一般都是装过无数软件的人了)

3.打开jenkins
安装完之后,有两种选择可以打开jenkins

①在Tomcat下打开:
把jenkins所在的文件夹中的jenkins.war放到Tomcat的webapps下,然后打开Tomcat
然后根据Tomcat的端口,比如8888,所以访问jenkins的网址就是 http://localhost:8888/jenkins

②使用命令行打开
在命令行中输入:java -jar jenkins.war
由于jenkins默认设置的端口有时被占用了,所以可以选择新的端口,假设使用1080,那么就是:java -jar jenkins –httpPort=1080
所以接下来要访问的网址就是http://localhost:1080

4.输入密码。

step 4
step 4

根据提示的路径找到密码,然后把密码输入
(PS:有时会很诡异找不到,所以也可以直接把路径复制,然后在文档路径粘贴)

5.出现了“离线”页面。

离线
离线

输入完密码,也许会很成功的进入到下载插件的界面,但也有可能跟我一样不幸运,来到了“离线”页面,如上。所以如果可以顺利下载插件,就直接忽略这一步吧。

不过我的解决方法是以下这种:(转自:https://blog.csdn.net/u013905744/article/details/80434942)
安装插件那个页面,就是提示你offline的那个页面,不要动。然后打开一个新的tab,输入网址http://192.168.211.103:8080/jenkins/pluginManager/advanced。 这里面最底下有个【升级站点】,把其中的链接由https改成http的就好了,http://updates.jenkins.io/update-center.json。 然后在服务列表中关闭jenkins,再tomcat重新启动,这样就能正常联网了

虽然之前看到的更多是说改jenkins目录下的hudson.model.UpdateCenter.xml中的那个url,把https改成http,但是我改了还是没用。

6.下载插件。

step 6
step 6

ok这时候,就可以愉快的来下载插件了。但是又要让你选“推荐”的还是“自选”,噫我是选择了推荐的,因为之前在网上看到有人自选插件的清单,其中有几个我没有看到,所以最后选择了推荐的。
然后就可以喝杯茶静待下载成功了。
下载成功后就创建用户啦,这一步也省略不写了。

7.配置。
终于进入了正式的界面了。接下来,就是配置环境变量等等了。
点击右侧的“系统管理”,选择“系统设置”:

step 7
step 7

在Global properties中勾选“环境变量”,填写SDK和NDK(如果有需要)的地址,然后保存
环境变量
环境变量

回退到“系统管理”,选择“全局工具配置”:
在JDK、Git和Gradle都填上,不要选择“自动下载”,听说下载很慢emmm
全局工具配置
全局工具配置

Git可填,如果使用的是svn的话,就可以先忽略掉
填完保存

8.建任务。
由于我的项目只是简单的构建个apk,所以下面只是简单的填写,如有其它需要可自行搜索其它的。
在主页右侧new一个任务,然后填任务名,选择第一个

step 8
step 8

然后直接来到source code management,根据需要选择git或svn,填写url和证书(就是添加个用户名和密码来登录进去)
source code management
source code management

跳到Build这里,选择第二个,然后按下面填写,保存。
Build
Build

Build
Build

9.检查代码。
因为没有这一步,我的构建一直失败,所以写下检查步骤:

①.保证代码中没有local.properties和app.externalNativeBuild(这一个是在使用ndk的时候会生成)。
local.properties中的环境可能跟jenkins的配置不一样,.externalNativeBuild也是一样的道理,不同路径的ndk生成的文件也不一样,所以这两个文件都不能出现

②.编写好build.gradle文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
signingConfigs {
release {
keyAlias KEYALIAS
keyPassword KEYPASSWORD
storeFile file('../apk.jks')
storePassword STOREPASSWORD
}
}
//两个版本同时用发布版本的签名秘钥
buildTypes {
//发布版本
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
//测试版本
debug {
jniDebuggable true
debuggable true
signingConfig signingConfigs.release
}
}
// 打包后应用名称
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "Test-${defaultConfig.versionName}.apk"

}
}

对于上面提到的”signingConfigs”,里面的keyAlias、keyPassword和storePassword都是写在了gradle.properties下。而storeFile则是对应的.jks的路径
所以在上传代码时,记得上传.jks文件。

10.构建。
在任务左侧点击“立即构建”,即可成功构建。

由于我的经验还是很浅,有一些点也许说得不太好,所以如果有错或者是更好的建议,欢迎大家之处,感谢~