持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
减少风险
减少重复工作
任何时间、地点生成可部署的软件
—-Baidu
持续集成工具很多,我用的是jenkins,成熟稳定,由于公司使用的Gitlab托管代码,过几天考虑将Gitlab升级后,使用它的持续集成,据同事说简单友好,当然等我偷来同事的研究成果,再来与大家分享。。。
jenkins是需要JDK环境的,下载JDK,直接安装即可
官网下载
官网下载war包
下载时注意,点击箭头所示的按钮即可,不需要下载Mac OS X的安装文件,否则下载的不是war包,而是pkg安装文件。
下载完成后,打开终端,cd到war包所在目录,执行:
java -jar jenkins.war --httpPort=8888
当终端执行完毕,出现上图所示时,jenkins已经启动了,在浏览器输入下面地址打开jenkins:
http://localhost:8888
httpPort是端口号,可以自己设置,注意不要与其他冲突,例如8080,很多应用的默认端口号就是8080,像charles
选择“系统管理”->”管理插件”,在“可选插件”中选择安装以下插件:
1、GitLab Plugin
2、Gitlab Hook Plugin
3、Xcode integration
4、Credentials Plugin
5、Keychains and Provisioning Profiles Management
6、Publish over FTP
7、Post-Build Script Plug-in
有些可能已经安装了,就不需要选择了,然后点击“直接安装”,并在之后的进度页面,选择“安装完成后重启jenkins(空闲时)”,当一切搞定,并重启jenkins之后,配置就成功了。
这里需要注意,插件有可能安装不成功,一般安装不成功有如下几种情况:
Error 1:墙的问题,log提示下载失败:
解决方式:、或者 “系统管理”—”管理插件”—”高级”—”升级站点”里面更改源
Error 2:依赖包问题,log如下:
Pipeline: Stage View Plugin version 2.10
momentjs v1.1 is missing. To fix, install v1.1 or later.
jquery-detached v1.2.1 is missing. To fix, install v1.2.1 or later.
handlebars v1.1 is missing. To fix, install v1.1 or later.
workflow-job v2.0 is missing. To fix, install v2.0 or later.
pipeline-rest-api v2.10 is missing. To fix, install v2.10 or later.
解决方式:安装顺序将log中所需的依赖先安装上
Error 3:未知问题,log如下:
Failed to install Upload to pgyer java.io.IOException:
Downloaded file /Users/zhangxiaoqiang/.jenkins/plugins/upload-pgyer.jpi.tmp does not match expected SHA-1, expected ‘2KMbwAAAPOYEX7/KON5uJcSk+2M=’, actual ‘2jmj7l5rSw0yVb/vlWAYkK/YBwk=’
目前的解决方式是 手动安装插件,插件下载地址https://plugins.jenkins.io
将下载的插件手动导入”系统管理”—”管理插件”—”高级”—”上传插件”
点击“OK”,进入配置界面,具体配置有图为证:
第一处:基本信息(每一处配置完,“保存”一下)
第二处:源码管理
我填写的是自己Github上的一个示例的地址
第三处:构建环境
iOS打包需要签名文件和证书,所以这部分我们勾选“Keychains and Code Signing Identities”和“Mobile Provisioning Profiles”
这里我们又需要用到Jenkins的插件,在”系统管理”页面,选择“Keychains and Provisioning Profiles Management”。
点击“浏览”按钮,上传keychain和项目用的打包证书.mobileprovision。
签名文件好找。keychain的路径在如下路径中:
/Users/<USERNAME>/Library/Keychains/login.keychain
将login.keychain复制到任意文件夹下上传即可
注意:Mac 10.12之后,找不到login.keychain,同文件夹下会有个login.keychain-db,拷贝出来改名为login.keychain即可
上传成功后,先写password(mac当前账户的登录密码),然后为keychain指明签名文件的名称。点击“Add Code Signing Identity”。
再为Provisioning Profiles配置签名文件所在的路径,一般路径为:
/Users/<USERNAME>/Library/MobileDevice/Provisioning Profiles
最后添加成功后如下图所示
证书和签名文件配置到jenkins中了,接下来需要配置到jenkins中新建的项目中,在项目的“配置”中:
Variables这一项其实不可编辑,所以填完上面几项,不用管,保存即可,之后构建过后,这里会自动填上的
第四处:Xcode配置
点击“增加构建步骤”,选择“Xcode”,继续配置:
点击“Settings…”
点击“Advanced build settings…”
另外像有些选项,比如Xcode Workspace File只要当项目中使用了cocoa pods,存在.xcworkspace时需要填的,这些需要自己定夺。
第五处:上传蒲公英和发送邮件通知
点击“增加构建后操作步骤”,选择“Execute a set of scripts”
OK,现在点击jenkins中对于项目的“立即构建”,我们可以看到进度,点击右侧的三角,选择“console output”,可以看控制台的信息,如果报错,可以根据打印,做出调整。我在构建的时候也出现不少错误,没有写到文章中,如果大家出现问题,,欢迎提问。
相关的python脚本地址
关于持续集成后续还会写相关文章,敬请关注!!!