一、背景
在实际项目开发中,自测完成后,需要给到测试人员安装包进行测试,在这一过程中,如果使用手动打包,这一过程就会比较耗时,如果电脑配置较差,可能还会引起电脑卡顿造成无法同步开发等等,现在有了jenkins这一神器,就可以解放双手,提交代码的同时就可以实现同步打包,并且可以随时可测。
一、简介
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。它的优势在于以下几点:
-
持续集成和持续交付
作为一个可扩展的自动化服务器,Jenkins 可以用作简单的 CI 服务器,或者变成任何项目的持续交付中心。 -
简易安装
Jenkins 是一个基于 Java 的独立程序,可以立即运行,包含 Windows、Mac OS X 和其他类 Unix 操作系统。 -
配置简单
Jenkins 可以通过其网页界面轻松设置和配置,其中包括即时错误检查和内置帮助。 -
插件
通过更新中心中的 1000 多个插件,Jenkins 集成了持续集成和持续交付工具链中几乎所有的工具。 -
扩展
Jenkins 可以通过其插件架构进行扩展,从而为 Jenkins 可以做的事提供几乎无限的可能性。 -
分布式
Jenkins 可以轻松地在多台机器上分配工作,帮助更快速地跨多个平台推动构建、测试和部署。
对于详细的资料,可前往jenkins官网自行下载安装包及配置文档。
三、安装jenkins
- 前往官网手动下载安装包进行安装
- 使用
brew
安装最新版本
brew install jenkins
- 安装 LTS 版本
brew install jenkins-lts
四、解锁jenkins
1、安装结束后,终端输入命令:
jenkins
2、启动服务后,前往浏览器访问http://localhost:8080
,如果是第一次启动,需要输入密码进行访问,可按照浏览器提示的路径进行密码的获取,复制到输入框后点击继续即可解锁
3、安装插件
- 安装建议的插件:安装推荐的一组插件,这些插件基于最常见的用例
- 自定义安装插件:通过Jenkins中的
Manage Jenkins
>Manage Plugins
页面在稍后的时间点安装(或删除)其他Jenkins插件
4、配置管理员账户
五、安装自定义插件
目前安装的自定义插件主要有Xcode integration
和Keychains and Provisioning Profiles Management
,下面主要介绍如何安装Keychains and Provisioning Profiles Management
及配置.
1、安装Keychains and Provisioning Profiles Management
的一款插件,用来管理kechain和iOS证书
2、前往Manage Jenkins
> Keychains and Provisioning Profiles Management
上传文件及设置,
这里需要上传Keychain和Provisioning Profile文件。
-
上传Keychain文件,文件路径在
~/Library/Keychains
,将文件login.keychain-db
拷贝一份,去掉后缀-db
,即可上传,上传成功后,在Code Signing Identity
处填写证书名称,可填写多个证书名称,一般选择开发和生产两个证书就可以了,可前往钥匙串中找到对应的证书,复制粘贴名称即可。如iPhone Distribution: Guangdong xxx(xxxx)
、iPhone Developer: xiao ming (75CJYJS52)
. -
上传Provisioning Profile描述文件,去开发者平台下载对应的dev、dis、ad-hoc描述文件上传即可,上传完成后会自动填充相关信息,在
Provisioning Profiles Directory Path
处填写描述文件安装的路径,如/Users/xiaoming/Library/MobileDevice/Provisioning Profiles
.
六、新建任务
一、jenkins->新建任务
二、输入一个任务名称,一般按照一定的规范进行命名,比如iOS_xxx
,接下来选择工程风格,优先使用之前已配置好过的项目,这样就只要改少量配置就可以了,如果是需要逐步手动配置,一般选择freestyle project
进行配置
三、配置
-
General
描述:自定义,可以用来描述此次工程的功能,比如这是iOSxxx迭代分支功能
丢弃旧的构建:打勾
策略:可以根据自己的需求进行选择,比如保持构建天数5天,构建的最大数目30等等 -
源码管理(Git)
Repository URL:填写自己项目的git地址
Credentials:填写https账户密码或ssh密钥
指定分支:填写自己要打包的分支,例如*/feature-xxx
-
构建触发器
可选择Poll SCM轮询构建,例如H/15 * * * *
每15分钟构建一次 -
构建环境
勾选Set jenkins user build variables
,这是为了后面的自定义版本号做的配置 -
构建
先选择添加Xcode选项,如果没有这个选项,需要先添加Xcode integration
插件 -
Versioning
勾选Provide version number and run avgtool?
Marketing version:例如1.1.0
Technical version:例如Demo-${BUILD_NUMBER}
-
Execute shell
这里添加需要执行的操作,比如执行一些打包的配置、资源的检测、上传第三包平台的执行等等,例如
cd ${WORKSPACE}
python3 ./jenkins_stringCheck.py
./source_replace.sh 0
cd ..
python package.py -b -1 -u fir -d ${JOB_NAME}
#python package.py -b -1 -u pgyer -d ${JOB_NAME}
#python package.py -b -1 -u all -p production -d ${JOB_NAME}
- 构建后操作
可根据自己的需求选择,例如想将打包后的IPA包放到FTP上,就可以添加Send build artifacts over FTP
七、总结
总的来说,jenkins的确是非常强大且高度自定义,有效的提高了N倍的交付效率。关于它的更多配置,也只有在未来工作学习中不断学习和尝试,需求一套适合自己或者公司的解决方案。
网友评论