fab*_*abb 28 macos xcode continuous-integration ios jenkins
有没有一种方法/插件可以将新的Xcode服务和/或新的Apple CI与Jenkins集成?
让Jenkins服务器+ OSX构建从属连接的主要问题ssh是单元测试不起作用,因为iOS模拟器需要一个在此配置中不存在的图形环境.
我希望可以将Xcode服务(支持单元测试)与Jenkins集成.
可能是使用Apple CI就足以满足我的需求,但这个问题的目的是将Xcode服务与Jenkins集成.
我对现有的Xcode Jenkins插件有经验,但似乎不支持全新的Xcode服务或新的Apple CI.我特别热衷于通过CI进行单元测试(使用旧方式在ssh会话中无法正常工作).
我想了解以下与Jenkins和ssh连接的构建奴隶无关的问题的信息:
关于目前与Jenkins和ssh连接的构建从站一起工作的事情的信息仍然应该与Xcode服务集成一起工作:
${BUILD_NUMBER},并且Jenkins根据其内部版本号设置此环境变量.当Apple CI执行构建时,很可能会设置内部版本号.)Apple CI == Xcode serviceApple CI 是否只使用 Xcode服务.在后一种情况下,Xcode服务就像一个智能构建从属服务器,Jenkins可能会使用它来进行构建和测试,但是自己管理构建数量和产品.San*_*aus 14
我相信你将不得不选择jenkins或xcode服务器,而不是两者.我不太了解xcode服务器,但我知道jenkins和xcode 5.
使用不同配置构建:
在xcode插件中,您可以设置要使用的方案.
自动构建数量增量
我在我的jenkins作业中添加了一个名为XCODEBUILDNUMBER的参数.每当我开始构建时,我只需从我的xcode项目中复制构建号(我手动递增它.我看起来像080813A)并将其粘贴到XCODEBUILD参数中.我使用它来命名我的输出文件等.有jenkins的插件可以自动增加你的内部版本号,但它们不集成,或与xcode同步.
处理/同步Jenkins和Apple CI之间的内部版本号
正如我之前所说,我不知道如何同步构建号,但我只想到了一个可能的解决方案.您可以使用命令行工具plistbuddy在info.plist中设置内部版本号,作为jenkins作业中的构建步骤.
单元测试
我没有成功地使用Xcode5进行单元测试,但我知道jenkins的xcode插件支持它.我相信项目设置中没有"Test After Build"键可能与它有关.如果你让它发挥作用,我很想知道.(我也热衷于这项工作)
验收测试
据我所知,Frank是一个命令行工具.您可以轻松地将它集成到您的Jenkins作业中,我相信如果您的测试没有通过,它将无法构建.
从不同的Jenkins Jobs访问Apple CI的构建产品
不完全确定你的意思,但使用jenkins你可以存档您的构建产品(.ipa),以便以后下载并上传到像testflight这样的服务.同样,我对Xcode Server(CI)了解不多.
备份构建
正如我之前所说,jenkins可以存档您的构建产品.另外,我在构建产品目录中使用$ {BUILD_NUMBER}变量,因此每个构建都有一个不同的目录.此目录也备份到我的Time Machine,并将重要的版本复制到我的web目录.
自动构建git push到特定分支
使用jenkins git插件,您可以让jenkins在您指定的间隔内轮询您的scm,并可以触发更改的构建.
邮件通知
我确信有一个插件.(当构建失败/成功时通过电子邮件发送给你.事实上,这可能是内置的)
在结束
xcode CI是一个完全独立的CI,可能很难与jenkins集成.就个人而言,我会推荐jenkins,因为它具有可扩展性.对不起,我对Xcode Server了解不多.
我在我的OS X构建从站上使用Xcode 5在Jenkins中运行了单元测试.我没有使用Xcode插件,而是作为执行shell构建步骤运行:
xcodebuild test -scheme <scheme> -configuration Coverage -sdk iphonesimulator7.0 -destination OS=7.0,name="iPhone Retina (4-inch)"
Run Code Online (Sandbox Code Playgroud)
我的coverage配置与我的Debug配置完全相同,只是Generate Test Coverage Reports设置为YES,Instrument Program Flow设置为YES.这样做是为了创建测试覆盖文件.由于Xcode 5中的错误,我调用了__gcov_flush(); 在我所有测试的泪水中.我将此xcodebuild命令的输出传输到ocunit2junit以获取Jenkins中的测试报告.
| 归档时间: |
|
| 查看次数: |
13363 次 |
| 最近记录: |