Xcode9 之 Xcode Server 持续集成
前言:Xcode9之前使用Xcode Server 步骤比较繁琐,还需要单独的macOS Server app,Xcode9之后preferences新增了Server & Bots 选项, 将Xcode Server内置在了Xcode中。 下面将介绍在Xcode9中如何设置和使用Xcode Server。
开启Server & Bots
选择设置Xcode Server的用户,我选择的是自己,也可以选择其他用户。
Create Bots
#####为什么不能创建Bot ??因为需要在服务器建立代码仓库,否则不能创建,会出现以下提示
可以创建macOS和iOS的APP,这里只介绍iOS,代码使用Git做版本控制。 选择Product-> Create Bot开始创建。注:Run tests in parallel 勾选之后,会并行执行test,如果选择的设备过多会导致系统卡到爆!并最终导致本次Integration失败。###Triggers
一:Pre-Integration Scripts: 设置在构建之前执行的Script(在代码checkout/update执行完,构建开始前执行)。 二:Post-Integration Scripts: 设置在构建完成之后执行的Script,Integration失败则不会触发,可以选择在什么结果下执行,见图Run On项,这个Script在执行时可以获取到执行后的结果,可查看下面这张对照表。 三:Email Notifications :发送邮件通知类型有两种 1:New Issue Email ,当出现issue,waring 时,可以给提交者发送邮件通知告知详细情况。 2:Periodic Email Report
###Post-Integration Scripts 时可用的CI Script Variables对照表
Variable | Type | Description | Example |
---|---|---|---|
XCS_BOT_NAME | String | The name of this bot | MyApp Bot |
XCS | Number | ? | 1 |
XCS_SOURCE_DIR | Path | 到这个集成的源目录的路径 | /Library/Developer/XcodeServer/Integrations/Caches/$XCS_BOT_ID/Source |
XCS_INTEGRATION_RESULT | String | 这个集成的结果 | succeeded |
XCS_TEST_FAILURE_COUNT | Number | 在这个集成中测试失败的次数 | 0 |
XCS_INTEGRATION_ID | String | 该集成的ID | 2 |
XCS_BOT_TINY_ID | String | 这个机器人的短ID | BA7B030 |
XCS_ARCHIVE | Path | 通过此集成生成的归档的路径 | /Library/Developer/XcodeServer/Integrations/Integration-$XCS_INTEGRATION_ID/Archive.xcarchive |
XCS_TEST_FAILURE_CHANGE | Number | 在此与之前的集成之间,测试失败的数量发生的变化数 | 0 |
XCS_INTEGRATION_TINY_ID | String | 该集成的短ID | 847C2A7 |
XCS_BOT_ID | String | 这个bot的ID | 4faee640aba92fc40c53c58c0a5ccadd |
XCS_XCODEBUILD_LOG | Path | 构建日志的路径 | /Library/Developer/XcodeServer/Integrations/Integration-$XCS_INTEGRATION_ID/build.log |
XCS_PRODUCT | String | 构建产品的名称 | MyApp.ipa |
XCS_ERROR_COUNT | Number | 这个集成中的错误数量 | 0 |
XCS_ANALYZER_WARNING_COUNT | Number | 在这个集成中静态分析警告的数量 | 0 |
XCS_TESTS_CHANGE | Number | 此次与之前集成的测试次数的变化数 | 0 |
XCS_ERROR_CHANGE | Number | 在此与之前的集成之间的错误量的变化数 | 0 |
XCS_ANALYZER_WARNING_CHANGE | Number | 静态分析仪警告的数量在此与之前的集成之间发生变化数 | 0 |
XCS_WARNING_COUNT | Number | 这个整合的警告数 | 0 |
XCS_TESTS_COUNT | Number | 这个整合的测试次数 | 2 |
XCS_OUTPUT_DIR | Path | 建立输出目录。集成完成后,该目录将被删除。 | /Library/Developer/XcodeServer/Integrations/Integration-$XCS_INTEGRATION_ID |
XCS_INTEGRATION_NUMBER | Number | 这个集成在该bot下的编号 | 2 |
也可以在environment variables 中添加自定义变量。
路径 /Library/Developer/XcodeServer/IntegrationAssets/${XCS_BOT_ID}-${XCS_BOT_NAME}/ 是存储bot结果的路径
值得注意: 在 Trigger 里操作路径
/Library/Developer/XcodeServer/IntegrationAssets/${XCS_BOT_ID}-${XCS_BOT_NAME}/ ${XCS_INTEGRATION_NUMBER}
无效,因为该路径在trigger跑完之后才由upload统一生成,从loading过程可以看到。复制代码
####整个过程Gif
###Integration 结果
/Library/Developer/XcodeServer/IntegrationAssets/$XCS_BOT_ID-$XCS_BOT_NAME/$XCS_INTEGRATION_NUMBER/ 该路径中的是integration的结果集合。在XcodeServer Website中Download下来的就是该目录压缩包。有的时候可能要对结果进行后续分析
##总结:
1:Integration 每次都会去拉取和更新代码仓库的最新代码,所以是以仓库代码为准,本地未提交的不生效。在路径~/Library/Caches/XCSBuilder/Bots下可以找到拉取的代码。 2:依赖于Scheme
Xcode9 之 Xcode Server 持续集成相关推荐
- CI(Continue Integrate)自动化持续集成和发布
引言 在App项目中频繁的发布版本可能是一件比较头疼的问题.经常会有客户追着PM要版本,PM追着测试要版本,测试又去追着开发要版本的情况,要是哪天赶上开发跑肚拉稀,生病住院,那整个项目都会delay. ...
- 持续集成:CruiseControl.NET + VisualSVN.Server
刚换了工作,有需要搭建一套持续集成的平台,做一下总结. 首先是我用到的工具: 上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到.主要的需求目前是,使用已发布的稳 ...
- 搭建你的持续集成server - CruiseControl step by step(1)
CruiseControl是CIserver的老者,诞生已是多年,在很多方面,CruiseControlserver已经成为持续集成实践的同义词.而如今,CruiseControl已发展成为一个家族式 ...
- SQL Server数据库持续集成简介
什么是SQL数据库CI? ( What is SQL database CI? ) Continuous integration (CI), in the context of databases, ...
- 基于Team Foundation Server 2010 Scrum 1.0与持续集成的最佳实践
本文适合对Team Foundation Server 2010的部署和管理.模板配置有经验的人员阅读. 在阅读本文之前,需了解Scrum的一些基本知识:其次,需对Visual Studio Scru ...
- Jenkins+GitHub+Xcode+fir搭了一个持续集成环境
本文已迁移到 xuanyiliu.com BTW 我自己已经把项目从Jenkins迁移到了BuddyBuild上,如果你只有一个项目,公司不限制或是个人项目,完全可以用BB来代替,BB配置很简单,按步 ...
- 高德引擎构建及持续集成技术演进之路
来自:高德技术 01 背景 由于导航应用中的地图渲染.导航等核心功能对性能要求很高,所以高德地图客户端中大量功能采用 C++ 实现.随着业务的飞速发展,仅地图引擎库就有40多个模块,工程配置极其复杂, ...
- Jenkins Gitlab持续集成打包平台搭建
相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点. ...
- 基于 KIF 的 iOS UI 自动化测试和持续集成
客户端 UI 自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼 iOS 客户端实践的基于 KIF 的 UI 自动化测试和持续集成过程. 一.测试框架的选择 iOS UI 自动化测试框架 ...
最新文章
- Java学习总结:53(单对象保存父接口:Collection)
- C++ 命名空间解释
- IDC:预计全球人工智能支出将在四年内翻一番
- 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D...
- Python内置函数之数学函数
- CSDN社区之星专訪:我的蜕变之路
- 将对象映射到多个XML模式–天气示例
- input框自动填充内容背景颜色为黄色解决方法
- 信息学奥赛一本通 1356:计算(calc)
- 华为P40 Pro Plus:徕卡五摄加持 称霸DxOMark几无悬念
- 微信小程序-测试游戏生成六边多边形
- matlab处理足球数据,如何用MATLAB画一个足球出来?
- HTML DOM nodeName nodeValue
- Vue 引入 zepto
- [Sturts2]继承ActionSupport类
- weblogic14.c下载地址
- 辨认NPN三极管的三个管脚
- 通过快捷指令给 Mac 添加右键菜单「使用 VSCode 打开」
- implement在java中怎么用_JAVA中implement和extends的区别
- Linux 别名设置,可一键登入服务器- alias
热门文章
- layui jquery ajax,url,type,async,dataType,data
- iOS---------关于野指针定位总结
- 记一次Linux服务器因redis漏洞的挖矿病毒入侵
- Linux实战教学笔记02:计算机系统硬件核心知识
- 前端 javascript 数据类型 字典
- hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(3)http://www.cnblogs.com/liugh/p/6624491.html
- BZOJ 2045 容斥原理
- 第八十四节,css布局小技巧及font-awesome图标使用
- SSO 中间件 kisso
- CSDN网站用户数据库给破了