Jenkins自动化流程
- Tools
- 13天前
- 63热度
- 0评论
前言
在公司开发游戏项目时,有配合测试工程师来部署Jenkins打包Unity的Android项目。了解到了Jenkins自动打包的流程,所以写篇博客来记录一下。
一、Jenkins是什么
Jenkins是一个开源软件项目,是基于Java开发的一个持续集成工具(CI),具有友好的操作界面,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。通常与版本管理工具(SCM)、构建工具结合适用。
二、Jenkins的下载与安装
-
java环境安装:
由于Jenkins是根据
java开发的,所有运行jenkins需要java环境(JDK),安装JDK可看另一个博客:JDK安装 -
Jenkin下载安装:
进入Jenkins官网,点击Download后选择对应的平台和版本进行下载。

然后再双击jenkins安装包文件,执行安装。
- 设置安装路径,选择电脑比较大的内存盘:

- 选择
Run service as LocalSystem使用本地系统账号

- 选择未被占用的端口

- 一直点击下一步,直到安装完成。
- 在浏览器中访问http://localhost:8080(端口号),则会打开如下界面则表示jenkins安装完成。

-
Jenkins命令行指令:
- net stop jenkins:关闭jenkins进程
- net start jenkins:开启jenkins进程
- jenkins start:开启jenkins进行(必须进入jenkins的安装路径)
- jenkins restart:重启jenkins进行(必须进入jenkins的安装路径)
三、Jenkinsfile语法
编写Pipeline Script:
pipeline {
agent any
parameters {
// 字符串参数
string(name: 'WorkPath', defaultValue: 'dev', description: '工作路径')
// 下拉选择参数
choice(name: 'Channel', choices: ['huawei', 'xiaomi', 'vivo'], description: '渠道包')
// 布尔参数
booleanParam(name: 'AB', defaultValue: false, description: '是否打包AB')
// 文本参数(多行文本)
text(name: 'CUSTOM_CONFIG', defaultValue: '', description: '自定义配置')
}
stages {
stage('Build AB') {
steps {
script {
if (params.AB) {
echo "开始打ab包"
}
}
}
}
stage('Build') {
steps {
script {
// 通过 params.参数名 访问参数
echo "WorkPath:${params.WorkPath}"
echo "渠道包:${params.Channel}"
}
}
}
}
}
-
pipeline:表示一个流水线步骤
-
agent:指定了整个流水线或特定的部分, 将会在Jenkins环境中执行的位置,这取决于
agent区域的位置。该部分必须在pipeline块的顶层被定义。-
agent any:在任何可用的代理上执行流水线或阶段。
-
agent none: 当在
pipeline块的顶部没有全局代理, 该参数将会被分配到整个流水线的运行中并且每个stage部分都需要包含他自己的agent部分。 -
agent label:在提供了标签的 Jenkins 环境中可用的代理上执行流水线或阶段
-
-
stages:包含一系列一个或多个 stage 指令,
stages部分是流水线描述的大部分"work" 的位置。 建议stages至少包含一个 stage 指令用于连续交付过程的每个离散部分,比如构建, 测试, 和部署。 -
steps:
steps部分在给定的stage指令中执行的定义了一系列的一个或多个steps。 -
post:流水线阶段完成状态后进行。
-
always:无论流水线或阶段的完成状态如何。
-
changed:只有当前流水线或阶段的完成状态与它之前的运行不同时执行。
-
failure:只有当前流水线或阶段的完成状态为失败时执行。
-
success:只有当前流水线或阶段的完成状态为成功时执行。
-
aborted:只有当前流水线或阶段的完成状态为打断时执行。
-
-
parameters:供了一个用户在触发流水线时应该提供的参数列表。这些用户指定参数的值可通过
params对象提供给流水线步骤。- string类型:字符串类型的参数, 例如:
parameters { string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: '') } - booleanParam类型:布尔参数, 例如:
parameters { booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: '') } - choice类型:选项参数,例如:parameters { choice(name: 'DEBUG_BUILD',choice:['ios','android','windows'], description: '') }
- string类型:字符串类型的参数, 例如:
-
options:
- buildDiscarder:为最近的流水线运行的特定数量保存组件和控制台输出
- disableConcurrentBuilds:不允许同时执行流水线,例如:
options { disableConcurrentBuilds() } - timeout:设置流水线运行的超时时间, 在此之后,Jenkins将中止流水线。例如:
options { timeout(time: 1, unit: 'HOURS') }
-
environment:制定一个 键-值对序列,该序列将被定义为所有步骤的环境变量。
