Linux 部署Jenkins
先看图,Jenkins 主页,已有的几项是公司项目。

部署准备
一、服务器配置
一台Linux服务器
Tips:建议内存 16G 内存及以上。由于我部署的是Android 打包的项目,在使用后建议是在16GB及以上,如果是其他项目,应该可以适当减少。
Windows 连接 Linux 服务器需要借助第三方软件,这里用的是 PuTTY
PuTTY 使用教程
配置 Java 环境
配置JAVA环境的方法很多,建议百度,这边大概描述流程
- 官网下载使用于Linux且需要使用到的 JDK 压缩包,然后用命令解压到自定义路径下。或者 本地下载,然后用远程命令将文件传输到服务器上
- 配置 JAVA 环境
1
2
3
4
5
6
7
8
9
10
11
12
|
# 1、用vim编辑器来编辑profile文件(按“i”进入编辑)
vim /etc/profile
# 2、在文件末尾添加以下内容
export JAVA_HOME= "JDK 的路径"
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 3、编辑完成之后 按 ESC 退出编辑,输入 “:wq” 保存并退出(":q" 为退出不保存)
# 4、source /etc/profile 使修改立即生效
|
- 配置完之后按正常的流程,输入“java -version” 验证。
配置 Gradle 环境
-
官网下载 具体Gradle 版本
-
配置 Gradle 全局变量
1
2
3
4
5
6
7
8
9
10
11
|
# 1、用vim编辑器来编辑profile文件(按“i”进入编辑)
vim /etc/profile
# 2、在文件末尾添加以下内容
export GRADLE_HOME="Gradle 存放路径 如:/home/gradle"
export PATH=$GRADLE_HOME/bin:$PATH
# 3、编辑完成之后 按 ESC 退出编辑,输入 “:wq” 保存并退出(":q" 为退出不保存)
# 4、使修改立即生效
source /etc/profile
|
- 完成之后验证配置 用 “gradle -version” 命令
配置 Android SDK
参考文章:跳转
- 下载 SDKManager 下载地址
- 参照文章配置好后直接用 SDKManager 的命令下载对应的SDK,然后配置 ANDROID_HOME就好
- 使用 SDKManager 命令行工具 下载 CMake
1
2
3
4
5
6
7
8
9
10
11
12
|
# 查看所有可以下载的版本
sdkmanager --list
#下载相对应的包
sdkmanager --install “对应的包名”
#或者
sdkmanager 包名
#PS:在使用 sdkmanager 的时候可能会报错,找不到命令
#解决:
#1、完整 sdkmanager路径 + 命令
#2、进入 sdkmanager 路径下 使用 ./sdkmanager
|
- NDK 在Gradle 构建时会自动下载,但是这个这个时候可能会遇到没有文件夹读写权限的问题
1
2
3
4
|
# 使用命令给文件夹权限
chmod 777 -r "文件或文件夹名字"
#PS:其他数字代表的权限有兴趣可以百度了解
|
下载并配置Git
请点击 参考链接
安装并配置Jenkins
1、下载Jenkins 插件

Tips:刚打开的时候会提示下载推荐的插件,直接安装就好。但是图片里这两个可能需要自己单独安装一下
2、Mannger Jenkins
- maven 配置,默认就好

- JDK 路径

- GIt 路径

- Gradle 路径

2.2、进入 System 页面
- 配置全局属性

2、新建 Item
新建之后直接进入 Configure 页面配置,配置项目参数

- 打包版本(可选)

- 签名文件路径

- Git 地址及密码配置

- 指定Git 下载的分支 (可以参数化选择)

- 配置Gradle

Task 很重要,根据项目中的 Task 来的
项目中的加固及签名脚本
1
2
3
4
5
6
7
8
9
10
11
|
def protect(file, unsigned) {
def akey = "---"
def skey = "---"
def cmd = "/home/baiduProtect/apkprotect -v -akey $akey -skey $skey -i $file -o $unsigned -t 900"
try {
exec { executable 'bash' args '-c', cmd }
exec { executable 'bash' args '-c', "rm $file" }
} catch (Exception e) {
e.printStackTrace()
}
}
|
akey和skey 是百度加固获取的,apkprotect 如果因为找不到命令失败,可以加上完整路径。
1
2
3
4
5
6
7
8
9
|
def resign(unsigned, signed) {
println ">>>Donut Resign"
def keystore = "../maskparty.jks"
def zipalign = "/home/android-sdk/build-tools/33.0.2/zipalign -v 4 $unsigned $signed"
def sign1 = "/home/android-sdk/build-tools/33.0.2/apksigner sign --ks ${keystore} --ks-key-alias signName --ks-pass pass:xxx ${signed}"
exec { executable 'bash' args '-c', zipalign }
exec { executable 'bash' args '-c', sign1 }
exec { executable 'bash' args '-c', "rm $unsigned" }
}
|
jarsigner 是360 签名的,如果因为找不到命令失败,和apkprotect 一样,加上完整路径就好
Tips:也可以使用其他签名工具,挑好用的就行。
跟新Jenkins
Tip: 这边是通过apt的方式安装的Jenkins ,不同的安装方式更新略有区别
- 打开终端,以管理员身份登录
- 添加Jenkins 的密钥方便系统更新检查
1
|
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
|
- 更新软件包列表和Jenkins。输入以下命令
1
2
|
sudo apt update
sudo apt upgrade jenkins
|
- 等待更新完成,重启Jenkins服务并检查其版本。输入以下命令
1
2
|
sudo systemctl restart jenkins
/usr/share/jenkins/bin/version.sh
|
- 如果更新成功,您将在终端中看到Jenkins的版本号
打包完成自动上传
- 七牛对象存储
命令行工具文档地址:https://developer.qiniu.com/kodo/1302/qshell#9
- 腾讯云对象存储
可以查腾讯云文档,是支持的