前言: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 持续集成相关推荐

  1. CI(Continue Integrate)自动化持续集成和发布

    引言 在App项目中频繁的发布版本可能是一件比较头疼的问题.经常会有客户追着PM要版本,PM追着测试要版本,测试又去追着开发要版本的情况,要是哪天赶上开发跑肚拉稀,生病住院,那整个项目都会delay. ...

  2. 持续集成:CruiseControl.NET + VisualSVN.Server

    刚换了工作,有需要搭建一套持续集成的平台,做一下总结. 首先是我用到的工具: 上面缺少了Microsoft Fxcop,可以用来做代码校验,不过实际情况暂时还没有用到.主要的需求目前是,使用已发布的稳 ...

  3. 搭建你的持续集成server - CruiseControl step by step(1)

    CruiseControl是CIserver的老者,诞生已是多年,在很多方面,CruiseControlserver已经成为持续集成实践的同义词.而如今,CruiseControl已发展成为一个家族式 ...

  4. SQL Server数据库持续集成简介

    什么是SQL数据库CI? ( What is SQL database CI? ) Continuous integration (CI), in the context of databases, ...

  5. 基于Team Foundation Server 2010 Scrum 1.0与持续集成的最佳实践

    本文适合对Team Foundation Server 2010的部署和管理.模板配置有经验的人员阅读. 在阅读本文之前,需了解Scrum的一些基本知识:其次,需对Visual Studio Scru ...

  6. Jenkins+GitHub+Xcode+fir搭了一个持续集成环境

    本文已迁移到 xuanyiliu.com BTW 我自己已经把项目从Jenkins迁移到了BuddyBuild上,如果你只有一个项目,公司不限制或是个人项目,完全可以用BB来代替,BB配置很简单,按步 ...

  7. 高德引擎构建及持续集成技术演进之路

    来自:高德技术 01 背景 由于导航应用中的地图渲染.导航等核心功能对性能要求很高,所以高德地图客户端中大量功能采用 C++ 实现.随着业务的飞速发展,仅地图引擎库就有40多个模块,工程配置极其复杂, ...

  8. Jenkins Gitlab持续集成打包平台搭建

    相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点. ...

  9. 基于 KIF 的 iOS UI 自动化测试和持续集成

    客户端 UI 自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼 iOS 客户端实践的基于 KIF 的 UI 自动化测试和持续集成过程. 一.测试框架的选择 iOS UI 自动化测试框架 ...

最新文章

  1. Java学习总结:53(单对象保存父接口:Collection)
  2. C++ 命名空间解释
  3. IDC:预计全球人工智能支出将在四年内翻一番
  4. 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D...
  5. Python内置函数之数学函数
  6. CSDN社区之星专訪:我的蜕变之路
  7. 将对象映射到多个XML模式–天气示例
  8. input框自动填充内容背景颜色为黄色解决方法
  9. 信息学奥赛一本通 1356:计算(calc)
  10. 华为P40 Pro Plus:徕卡五摄加持 称霸DxOMark几无悬念
  11. 微信小程序-测试游戏生成六边多边形
  12. matlab处理足球数据,如何用MATLAB画一个足球出来?
  13. HTML DOM nodeName nodeValue
  14. Vue 引入 zepto
  15. [Sturts2]继承ActionSupport类
  16. weblogic14.c下载地址
  17. 辨认NPN三极管的三个管脚
  18. 通过快捷指令给 Mac 添加右键菜单「使用 VSCode 打开」
  19. implement在java中怎么用_JAVA中implement和extends的区别
  20. Linux 别名设置,可一键登入服务器- alias

热门文章

  1. layui jquery ajax,url,type,async,dataType,data
  2. iOS---------关于野指针定位总结
  3. 记一次Linux服务器因redis漏洞的挖矿病毒入侵
  4. Linux实战教学笔记02:计算机系统硬件核心知识
  5. 前端 javascript 数据类型 字典
  6. hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(3)http://www.cnblogs.com/liugh/p/6624491.html
  7. BZOJ 2045 容斥原理
  8. 第八十四节,css布局小技巧及font-awesome图标使用
  9. SSO 中间件 kisso
  10. CSDN网站用户数据库给破了