iOS 项目持续集成:Jenkins + Fastlane
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 项目持续集成:Jenkins + Fastlane相关的知识,希望对你有一定的参考价值。
参考技术A持续集成概念简介
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
参考: Mac 如何升级 Ruby 版本
第一步:安装rvm
$ curl -L get.rvm.io | bash -s stable
$ source ~/.profile
等待终端加载完毕,后输入:
$ rvm -v
第二步:安装ruby
列出ruby可安装的版本信息
$ rvm list known
安装一个ruby版本
$ rvm install 2.4
如果想设置为默认版本,可以用这条命令来完成
$ rvm use 2.4.0
查看已安装的ruby
$ rvm list
连上vpn更新gem
$ sudo gem install cocoapods --version 1.5.0
sudo gem install fastlane -NV
fastlane官方文档
安装java环境
$ brew install Caskroom/cask/java
安装jenkins
$ brew install jenkins
然后链接 launchd 配置文件
$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
可以更改此 plist 来进行一些自定义的配置,详细列表可以参考 https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins
如果要其他机器也可以访问,把 plist 里的 <string>--httpListenAddress=127.0.0.1</string> 删掉即可
修改完后,在终端执行
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
即可启动 Jenkins
接着用浏览器访问 localhost:8080(默认配置),就可以看到 Jenkins 的 web 界面了
第一次提示的密码一定要记下来。。。不然就蛋疼了。。。
若是没记住,删除权限, Mac下jenkins用户权限配置错误,导致登录时提示:没有Overall/read权限
jenkins用户管理
jenkins开机自动启动
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
启动jenkins服务
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
停止jenkins服务
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
Jenkins卸载方法(Windows/Linux/MacOS)
参考 https://www.cnblogs.com/EasonJim/p/6277708.html
sh /Library/Application Support/Jenkins/Uninstall.command
删除配置,这个可选
如果使用brew安装的,可以执行以下命令
brew uninstall jenkins
定时构建语法
例如:
01 10,18 * 11-12 1-6
11到12月,周一至周六,每天10:01 开始构建
Jenkins任务配置中选择,参数化构建过程==>添加参数==>添加相应类型参数。注意这里参数名称最好使用英文。
Jenkins任务配置中选择,构建==>增加构建步骤==>Execute shell,弹出的Command文本框内写入
security unlock-keychain 命令避免在执行脚本过程中涉及到钥匙串操作时,频繁输入用户密码,最后执行打包脚本,实现自动打包,上传功能
ios打包脚本工具传送门: iOS+shell+git+fastlane打包+蒲公英或fir.im上传
该工具配置文件与脚本分离,实现单脚本,多配置打包。可同时打包多个项目,完成后上传蒲公英或者fir.im。
参考先前写的博文 msmt Mac stmp 发邮件脚本
Jenkins-持续集成交付平台
Jenkins - 持续集成交付平台
- Jenkins功能包括:
- 1、持续的软件版本发布/测试项目。
- 2、监控外部调用执行的工作。
下载jenkins
Jenkins下载地址:https://jenkins.io/download/
考虑各平台兼容性,故选择war包jenkins.war
- 环境准备工作
安装jdk1.8以上版本
rpm -ivh jdk-8u161-linux-x64.rpm
安装tomcat8
mkdir-p /setup/ /opt/ /data/jenkins/
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.32/bin/apache-tomcat-8.5.32.zip -P /setup/
cd /setup/
unzip /setup/apache-tomcat-8.5.32.zip -d /opt
mv /opt/apache-tomcat-8.5.32 /opt/tomcat-jenkins
安装jenkins并配置数据路径
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war -P /setup/
mkdir /opt/tomcat-jenkins/webapps/jenkins/
unzip /setup/jenkins.war -d /opt/tomcat-jenkins/webapps/jenkins
vim /opt/tomcat-jenkins/bin/catalina.sh
......
export JENKINS_HOME="/data/jenkins"
# OS specific support. $var _must_ be set to either true or false.
......
yum或者rpm安装jenkins请修改
/etc/sysconfig/jenkins
启动jenkins
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
chmod +x /opt/tomcat-jenkins/bin/*.sh
sh /opt/tomcat-jenkins/bin/startup.sh
访问jenkins并初次安装
- 访问jenkins
- 浏览器打开页面
http://ip:8080/jenkins
- 服务器上查看
/data/jenkins/secrets/initialAdminPassword
密码,粘贴到下面输入框。 - 登录后安装插件,建议选择安装推荐的插件 。
- 插件安装完成后,让其选择新建一个用户 ,或者继续使用admin和原密码登录。
- 选择新建用户,保存并完成 。
- 系统提示访问url,并选择配置访问方式。
- 安装完成。
- 浏览器打开页面
PS: 服务会提醒
This Jenkins instance uses deprecated protocols: JNLP-connect,JNLP2-connect. It may impact stability of the instance. If newer protocol versions are supported by all system components (agents, CLI and other clients), it is highly recommended to disable the deprecated protocols. Protocol Configuration.
解决办法 : 系统管理--全局安全配置--代理--代理协议-取消所有< 弃用 >选项--保存
反向代理设置错误
解决办法 : 选择放弃即可
jenkins大量打印 DNSQuestion 日志
解决办法:
<yum或者rpm安装> /etc/rc.d/init.d/jenkins
在'PARAMS' 后面内增加 '-Dhudson.DNSMultiCast.disabled=true'
####################
<tomcat启动war包> tomcat/bin/catalina.sh
新增 '-Dhudson.DNSMultiCast.disabled=true'
以上是关于iOS 项目持续集成:Jenkins + Fastlane的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jenkins 和 Fabric 在工作区中持续集成 iOS 项目
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题