Featured image of post Linux 部署Jenkins

Linux 部署Jenkins

部署Android 打包自动化。 Jenkins 文章归档

Linux 部署Jenkins

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

Jenkins 主页

部署准备

一、服务器配置

一台Linux服务器

Tips:建议内存 16G 内存及以上。由于我部署的是Android 打包的项目,在使用后建议是在16GB及以上,如果是其他项目,应该可以适当减少。

Windows 连接 Linux 服务器需要借助第三方软件,这里用的是 PuTTY

PuTTY 使用教程

配置 Java 环境

配置JAVA环境的方法很多,建议百度,这边大概描述流程

  1. 官网下载使用于Linux且需要使用到的 JDK 压缩包,然后用命令解压到自定义路径下。或者 本地下载,然后用远程命令将文件传输到服务器上
  2. 配置 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 使修改立即生效
  1. 配置完之后按正常的流程,输入“java -version” 验证。

配置 Gradle 环境

  1. 官网下载 具体Gradle 版本

  2. 配置 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
  1. 完成之后验证配置 用 “gradle -version” 命令

配置 Android SDK

参考文章:跳转

  1. 下载 SDKManager 下载地址
  2. 参照文章配置好后直接用 SDKManager 的命令下载对应的SDK,然后配置 ANDROID_HOME就好
  3. 使用 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
  1. NDK 在Gradle 构建时会自动下载,但是这个这个时候可能会遇到没有文件夹读写权限的问题
1
2
3
4
# 使用命令给文件夹权限
chmod 777 -r "文件或文件夹名字"

#PS:其他数字代表的权限有兴趣可以百度了解

下载并配置Git

请点击 参考链接

安装并配置Jenkins

1、下载Jenkins 插件

插件列表截图

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

2、Mannger Jenkins

2.1 进入Tools 页面,配置相关的东西
  1. maven 配置,默认就好 截图
  2. JDK 路径 截图
  3. GIt 路径 截图
  4. Gradle 路径 截图
2.2、进入 System 页面
  1. 配置全局属性 截图

2、新建 Item

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

需要勾选-如图

  1. 打包版本(可选) 截图
  2. 签名文件路径 截图
  3. Git 地址及密码配置 截图
  4. 指定Git 下载的分支 (可以参数化选择) 截图
  5. 配置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 ,不同的安装方式更新略有区别

  1. 打开终端,以管理员身份登录
  2. 添加Jenkins 的密钥方便系统更新检查
1
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
  1. 更新软件包列表和Jenkins。输入以下命令
1
2
sudo apt update 
sudo apt upgrade jenkins
  1. 等待更新完成,重启Jenkins服务并检查其版本。输入以下命令
1
2
sudo systemctl restart jenkins
/usr/share/jenkins/bin/version.sh
  1. 如果更新成功,您将在终端中看到Jenkins的版本号

打包完成自动上传

  1. 七牛对象存储 命令行工具文档地址:https://developer.qiniu.com/kodo/1302/qshell#9
  2. 腾讯云对象存储 可以查腾讯云文档,是支持的
Licensed under CC BY-NC-SA 4.0
赣ICP备2022001789号
使用 Hugo 构建
主题 StackJimmy 设计