[Jenkins官网] (https://jenkins.io/download/)
[Jenkins文档] (https://jenkins.io/zh/doc/book/managing/plugins/)
安装Jenkins
Unity自动打包-Jenkins环境搭建(Mac & Windows)
使用Jenkins
1. Jenkins插件镜像下载加速
Jenkins镜像地址改为国内镜像地址:
Manage Jenkins -> Manage Plugins -> Advanced 菜单下将'升级站点'中的URL设为http://mirror.xmission.com/jenkins/updates/current/update-center.json 保存并且重启jenkins服务
Jenkins系列-Jenkins插件下载镜像加速
参考URL: https://www.cnblogs.com/zhuochong/p/10082498.html
2. 插件安装方法
手动安装插件
- 离线安装:Manage Jenkins -> Manage Plugins -> Advanced,然后上传插件进行安装。
手动下载(*.hpi): http://updates.jenkins-ci.org/download/plugins/ - 在线安装:Manage Jenkins -> Manage Plugins -> Avialable,查找并勾选所需插件,点击“直接安装”;
无需重启,插件即生效。如遇失败可重试或离线安装。
自动化安装插件
- Jenkins 官方 Docker 镜像中的自动化插件安装脚本:
https://github.com/jenkinsci/docker/blob/master/install-plugins.sh - 修改版自动化插件安装脚本:
https://github.com/zacker330/jenkins-install-plugins-shell
插件列表
AnsiColor
- 输出带颜色字体
- 使用方法:构建环境勾选 Color Ansi Console Output
Locale
- Localization: Chinese (Simplified)
- 使用方法:Jenkins -> Manage Jenkins -> Manage Plugins -> Locale,输入:zh_CN,然后Apply
Timestamper
- 使用方法:构建环境勾选 Add timestamps to the Console Output
Role-based Authorization Strategy
- 权限控制插件
- 使用方法:https://blog.csdn.net/qn0007/article/details/78477792?locationNum=2&fps=1
Build with Parameters
Extended Choice Parameter
- [Jenkins参数化构建插件,实现构建前输入自定义参数]
PowerShell
Unity3d
- Unity打包插件
GitLab plugin
- Gitlab是一个用于代码仓库管理的开源项目,用来在Jenkins上管理源代码
- 当git上的代码被提交 / 创建一个合并请求 / 现有合并请求关闭/合并时, GitLab 会记录构建状态,然后触发Jenkins,将Git上代码获取到Jenkins 上
GIT plugin
- Git 插件
Git Parameter
- Git 参数化构建插件
Gradle plugin
- Gradle 插件 - Android 专用
Credentials Plugin
- 管理证书插件
Xcode integration
- Xcode 编译插件,相当于将Xcode的编译过程的命令行操作,通过界面化展示了出来,Jenkins 调用本地Xcode进行编译,相当于讲一个Xcode 装在了Jenkins上
Keychains and Provisioning Profiles Management
- 钥匙串开发者证书 及 项目描述文件
SSH Credentials Plugin
- SSH 插件
SSH Slaves
- SSH Slaves 插件 - 配置 Jenkins Slaves 时需要
Environment Injector Plugin
- 通过文件生成全局变量的插件 - 构建布置之间进行传值
Email Extension
- Email 插件
3. Jenkins使用shell脚本命令行打包apk
#!/bin/sh
echo "--> 获取并设置插件参数"
JP_BUILD_TARGET="Android"
echo "--> 检测打包平台参数"
SUPPORT_TARGETS=("Android" "iOS" "PC")
if echo "${SUPPORT_TARGETS[@]}" | grep -w $JP_BUILD_TARGET &>/dev/null; then
echo "--> 当前打包平台参数: ${JP_BUILD_TARGET}"
else
echo "Error : 不支持的打包平台参数 : ${JP_BUILD_TARGET}"
exit 1
fi
echo "--> 设置项目工程参数"
UNITY_PATH="D:\Program Files\Unity\2018.2.21f1\Editor\Unity.exe"
PROJ_GIT_PATH="D:\GitProjects\QuickUSDK"
PROJ_PATH="${PROJ_GIT_PATH}\UnityProjects\QuickUSDK"
echo "--> 设置Unity的打包参数"
echo 刷新Unity工程
UNITY3D_REFRESH_METHOD="QuickEditor.Buildflow.BatchModeCommands.Refresh"
$UNITY_PATH -quit -batchmode -nographics -projectPath $PROJ_PATH -executeMethod ${UNITY3D_REFRESH_METHOD}
echo BuildPackage
UNITY3D_BUILD_METHOD="QuickEditor.Buildflow.BatchModeCommands.BuildPackage"
PROJ_BUILDER_FILE_NAME="QuickEditor.Buildflow_Android.apk"
echo "--> Set UNITY3D_BUILD_METHOD : ${UNITY3D_BUILD_METHOD}"
$UNITY_PATH -quit -batchmode -nographics -projectPath $PROJ_PATH -executeMethod {UNITY3D_BUILD_METHOD} Build_Target-$JP_BUILD_TARGET Build_FileName-$PROJ_BUILDER_FILE_NAME