持续集成(Continuous Integration 简称
CI
)。Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。具体就不多说了,想要更多的了解可以去查一下,下面是集成方法。
本文最终目的:
- 测试人员可登录
Jenkins
网页自行选择开发分支
和打包类型
,然后自动打包完成并自动上传至蒲公英
或iTunes Connect
,不再需要开发人员手动安装或上传。
1. 配置 Fastlane
由于项目的编译打包以及上传全部要依赖 Fastlane
来进行,所以在配置 Jenkins
之前要保证项目已经配置好了 Fastlane
,这里看我的另一篇文章:【iOS 开发】使用 Fastlane 自动化打包并发布 iOS 项目 。
2. 安装 Jenkins
Jenkins
依赖于Java
运行环境,因此需要先保证电脑已经安装了Java JDK
,如果没有的话前往 这里 下载安装即可。我这里是使用 homebrew 安装
Jenkins
,没有安装homebrew
的输入以下命令安装一下。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
千万不要去
Jenkins
官网下载pkg
安装包安装,因为用安装包安装会自动生成一个共享用户jenkins
,而这个用户的权限和系统登录用户的权限不同,会造成大量的权限问题,我已经被坑惨了,用homebrew
装是不会生成共享用户的。homebrew
安装完成后输入以下命令安装Jenkins
。
brew install jenkins
- 如果想要卸载直接执行以下命令即可卸载
Jenkins
。
brew uninstall jenkins
- 安装完成后输入以下命令链接
launchd
配置文件。
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
- 然后执行以下命令启动
Jenkins
。
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
-
Jenkins
默认是开机自动启动的,如果想关闭就执行以下命令即可关闭。
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
- 接着打开浏览器,输入 http://localhost:8080 ,就可以看到
Jenkins
已经启动。
-
Jenkins
默认端口号是8080
,如果想要更改端口号的话可以用Xcode
打开以下文件,将httpPort
后面的8080
改成你想要的端口号即可,如果想要别人访问你的Jenkins
服务器,只要把httpListenAddress
改为0.0.0.0
即可,改完重启后生效。
/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
3. 配置 Jenkins
- 等待启动完成后 ,会出现以下界面让你输入密码解锁。
- 密码就在上面提示的
/Users/Jonzzs/.jenkins/secrets/initialAdminPassword
文件中,打开initialAdminPassword
文件将密码复制到浏览器解锁即可,然后点击第一个Install suggested plugins
。
- 然后等待插件全部安装完成。
- 安装完成后会跳出创建用户界面,按照提示创建用户即可。
- 最后到这个页面就算是安装完成了。
4. 安装插件
- 在建任务之前需要先安装几个插件,前往
系统管理
-管理插件
,在可选插件
中搜索GitLab Plugin
、Gitlab Hook Plugin
、Xcode integration
这三个插件,然后安装。
5. 配置环境变量
- 前往
系统管理
-系统设置
找到全局属性
,然后添加以下三个环境变量。
LANG
en_US.UTF-8
LANGUAGE
en_US.UTF-8
LC_ALL
en_US.UTF-8
- 这三个环境变量是用来修改编码格式的,如果不加下面脚本执行
fastlane
命令时会报错。
6. 创建任务
- 插件安装完成以后就可以开始创建项目了,点击新建任务,输入你的项目名称。
- 勾选
参数化构建过程
,添加一个String Parameter
和一个Choice Parameter
,第一个ARCHIVE_BRANCH
主要是输入要打包的项目分支,第二个ARCHIVE_TYPE
是选择打包的类型,我这边beta
是打包发布到蒲公英
,release
是打包发布到iTunes Connect
,如果你不需要这些参数可以跳过。
- 在
源码管理
输入你的仓库地址,地址为SSH
方式,然后需要在点击Add
添加SSH Key
。
- 选择
SSH Username with private key
类型,Username
随便填,然后选择From the Jenkins master ~/.ssh
,添加完之后在Credentials
那里选择即可。
如果自己电脑没有生成过
SSH Key
,就自己去查一下吧,这里就不重复了。最后在
构建
中增加一个Execute Shell
,主要用来填写脚本内容。
- 填写以下脚本命令,
xxx
处填写自己项目相应文件夹名,因为在执行fastlane
指令之前需要进入fastlane
文件夹所在目录,如果你的git
根目录就是在项目目录的话,可以不用这句,然后点击保存
即可。
git checkout ${ARCHIVE_BRANCH}
git pull
cd ./xxx
fastlane ${ARCHIVE_TYPE}
7. 开始打包
- 进入你创建的任务,点击
Build with Parameters
,然后输入要打包的项目分支以及类型,然后点击开始构建
即可开始打包。
- 如果构建失败,也可以在
Build History
中点击Console Output
查看控制台输出记录,找到错误原因。
配置方法到这里就完成了,有不明白的地方可以留言。
将来的你,一定会感激现在拼命的自己,愿自己与读者的开发之路无限美好。