我创建了一个Xcode Bot,它集成在每次提交时.
在"运行脚本"触发器中,我想使用已运行的测试的集成状态更新当前的GitHub提交.相当标准的CI东西.
然后我将运行如下的脚本:
curl -i -X POST -H "Content-type: application/json"
-H 'Authorization: token TOKEN_HERE' -d
'{
"state": "success",
"target_url": "https://example.com/build/status",
"description": "The build succeeded!",
"context": "continuous-integration/jenkins"
}'
https://api.github.com/repos/ORGANIZATION_HERE/REPO_HERE/statuses/SHA_HERE
Run Code Online (Sandbox Code Playgroud)
看起来我将能够从Xcode Bot Environment变量获取success
或failure
状态:
在Xcode Server CI bot中访问构建文件夹(env变量?)
但是,未列出当前提交的SHA.如何在此时获取用于Integration的提交的SHA,以便在GitHub Status API请求中使用?
我在另一台计算机上设置了一个远程Git存储库和Xcode Server,然后在Xcode中创建了一个bot.每次我尝试进行新的集成时,都会失败并出现如下错误:
Assertion: Opening import file for module 'Accelerate': Permission denied
File: <filename>.swift:9
Run Code Online (Sandbox Code Playgroud)
如果我评论此文件中的所有内容,bot会开始为另一个框架(以及另一个.swift文件)显示相同的错误.它可以是Swift或Objective-C框架.
Search Paths
对于这个项目是:$(PROJECT_DIR)
,并Always Search User Paths
设置为Yes
我正在使用Xcode 7.2 beta 2,但我在App Store中遇到了与Xcode 7.1相同的问题.我尝试重新启动Xcode以及服务器和开发Mac,它没有帮助.该项目在我的开发机器上成功编译和运行.
服务器日志:(xcsbuildd.log)
[BuildService] Previous integration is needed but not loaded yet, fetching.
[BuildService] Previous integration loaded successfully.
[BuildService] Completed integration step XCSCheckoutIntegrationStep without error
[BuildService, Info] Asset packs will be hosted at <server url here>
[BuildService] Current server devices are needed but not loaded yet, fetching.
[BuildService] Devices loaded successfully. …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用OSX服务器设置Xcode bot.配置git存储库并创建机器人后,我运行集成.它失败,因为存储库仅部分检出.更确切地说:在配置的6个子模块中,只有3个被初始化和检出.
didi@mac:/Library/Server/Xcode/Data/BotRuns/Cache/c5fda8f4-4d25-4d25-c18a-eb0b16a06692/source$ git submodule status
+c6e8420aec4147641fb1ca12d9f1d31bdd804e77 libs/asi-http-request (v1.7-320-gc6e8420)
-ae64a38766b42f236bb94f0e661cddb829f9ac43 libs/kraken
-7da02b323636bbaa0bbbf5b4eb229fcc07b1e14a libs/route-me
152f9ee5576e710705a49032253d7d5af5366f9c libs/routing (152f9ee)
347aaf74fe0c6388785095efdbf6397851514b7f libs/rtlabel (1.0-32-g347aaf7)
-562cf6b1c879f03546f5184e012cea15c4f159db libs/skmaps
Run Code Online (Sandbox Code Playgroud)
( - 表示未初始化)
查看机器人日志,它似乎只是忽略子模块初始化部分中丢失的子模块:
...
Checking connectivity... done
Submodule 'libs/asi-http-request' (https://github.com/BikeCityGuide/asi-http-request.git) registered for path 'libs/asi-http-request'
Submodule 'libs/routing' (ssh://mac_ci@rooty.bikecityguide.org/var/repos/librouting.git) registered for path 'libs/routing'
Submodule 'libs/rtlabel' (https://github.com/BikeCityGuide/RTLabel.git) registered for path 'libs/rtlabel'
Cloning into 'libs/asi-http-request'...
...
Run Code Online (Sandbox Code Playgroud)
这里或其他地方没有错误消息.在日志中的任何地方都没有提到例如"kraken"(缺少子模块的名称).
手动签出时(clone,submodule init,submodule update),所有子模块都被初始化.
.gitmodules看起来像这样:
$ cat .gitmodules
[submodule "libs/asi-http-request"]
path = libs/asi-http-request
url = https://github.com/BikeCityGuide/asi-http-request.git
[submodule "libs/rtlabel"]
path = libs/rtlabel
url = https://github.com/BikeCityGuide/RTLabel.git
[submodule "libs/routing"] …
Run Code Online (Sandbox Code Playgroud) 因此,在更新到OS X Server 3.1(Build 13S4138)后,我们的Xcode Build Web界面只返回一个空白页面.我确信一切都设置正确,因为空白页面的来源显示了很多元数据,所以我们的DNS路由是正确的.
任何人都可以理解这一点,或者遇到过这个问题并设法解决它?
这是我看到的xcode构建Web界面曾经是空页面的来源:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta name="x-apple-config-DisableAllActivityView" content="false"/>
<meta name="x-apple-config-DisableAllPeopleView" content="false"/>
<meta name="x-apple-config-DisableAllProjectsView" content="false"/>
<meta name="x-apple-config-MaxAttachmentFileSize" content="524288000"/>
<meta name="x-apple-config-RecordSearchStats" content="false"/>
<meta name="x-apple-route" content="/app-context/xcode/?.*"/>
<meta name="x-apple-service-gitweb-enabled" content="true"/>
<meta name="x-apple-service-webauth-enabled" content="true"/>
<meta name="x-apple-service-xcode-enabled" content="true"/>
<meta name="x-apple-sessionID" content="96b228e9-0541-4577-a3f1-62c927871fca"/>
<meta name="x-apple-user-blogGUID" content="bd0df023-315e-4cea-bdbc-f333560a945b"/>
<meta name="x-apple-user-can-create-bots" content="true"/>
<meta name="x-apple-user-can-create-projects" content="true"/>
<meta name="x-apple-user-externalID" content="7FAEA168-A97E-4CA0-84A6-43374FEA6016"/>
<meta name="x-apple-user-guid" content="07d15a1c-c07f-44a9-adc5-936d0cd5e966"/>
<meta name="x-apple-user-is-admin" content="true"/>
<meta name="x-apple-user-isBlogEnabled" content="false"/>
<meta name="x-apple-user-logged-in" content="true"/>
<meta name="x-apple-user-longName" content="Admin"/>
<meta name="x-apple-user-shortName" content="administrator"/>
<meta name="x-apple-user-tinyID" content="S203R9"/>
<meta name="x-apple-username" content="administrator"/> …
Run Code Online (Sandbox Code Playgroud) 我看到的错误如下:
Test target PrototypeTests encountered an error (The operation couldn’t be completed. Too many open files in system. Too many open files in system)
Test target Prototype Integration Tests encountered an error (The operation couldn’t be completed. Too many open files in system. Too many open files in system)
Run Code Online (Sandbox Code Playgroud)
我能够毫无问题地运行分析和归档操作,但启用测试操作会导致上述错误.我甚至尝试过空测试,问题仍然存在.
sudo launchctl limit maxfiles
我服务器上的输出是:
maxfiles 256 unlimited
Run Code Online (Sandbox Code Playgroud)
如果我能提供更多信息,请告诉我.
当我尝试在我的OS X Server 4.0上集成Xcode机器人时,我对如何解决这个"构建服务错误问题"毫无头绪.
在这台服务器上一切正常,我甚至在同一个项目的另一个分支上有另一个工作机器人.
它抛出了我
机器人问题:错误.构建服务错误.问题:mmap失败.无法写入数据:无效的参数(-1).
不知道该怎么办......
提前致谢!
在Xcode 6中创建Xcode Bot时,它链接到Xcode源代码控制中的当前活动分支.在创建机器人之后似乎没有支持的方法来更改分支.
我已将我的机器人设置为"在提交时"运行.我发现当我提交到那个分支时,机器人会立即整合项目.但是当我提交不同的分支时,机器人不采取任何行动.
理想情况下,我想一个单一的Xcode博特看远程仓库的所有分支.当有任何分支的新提交时,应该运行机器人及其测试.
我不想为每个分支创建一个新的机器人.有解决方案吗?
错误报告:
rdar:// 20154198
Xcode集成同时为签名产品上的捆绑源创建".ipa".已经卡住了好几个小时.:(
我正在使用xcode-bots进行自动化testflight构建,在集成时,机器人在捆绑源处挂起如图所示,我已将我的证书和配置文件分别放在Xcode-Server钥匙串和配置文件夹文件夹中,仍然出现错误.
任何帮助,将不胜感激..:)
我正在观看WWDC 2014"与Xcode持续集成"视频,它看起来很棒,如何使用机器人进行测试.但我的问题是任何看过该视频的人,当他向Jeeves发送信息说"整合CoffeeBoard"时.开始整合.我想知道他是怎么做到的.
我想在github上添加post-receive hook,在接收任何提交时应该在我的OS X Server上启动Xcode bot.我的大多数团队成员使用SourceTree或GitHub来管理他们的git,他们不想使用Xcode Source Control.我认为创建一个机器人并设置其手动启动的选项将成功.我需要知道,"OS X Server是否会为您提供类似于启动机器人的URL的选项?"
对不起,如果我不够清楚的话.但这对我来说太混乱了,因为他们对触发器的文档很少.虽然他提到它是很酷的新功能,但他们没有包含任何信息来实现这一目标
我在本地 iMac 上运行 Xcode Server Bots,但未发送电子邮件通知。
我已经学习了很多教程,并进行了postfix
设置和工作。我可以使用命令成功发送电子邮件
sudo echo "Test sending email from Postfix" | mail -s "Test Postfix" xxxxxx@me.com
Run Code Online (Sandbox Code Playgroud)
收到了我的电子邮件。
在Xcode
> Preferences
> Server & Bots
> 下,Mail
我按照所有教程将所有内容留空。
对于我的 Bot,在Triggers
我下面有一个Periodic Email Report
withSchedule
设置After each integration
和设置我的from
,reply-to
和To
字段,并且每个都Notify On
打勾。
我使用命令监视smtp
和smtp
处理
sudo log stream --predicate '(process == "smtpd") || (process == "smtp")' --info
Run Code Online (Sandbox Code Playgroud)
当我使用上述测试发送电子邮件时,我会看到一条日志行。
但是,当我的 Xcode Bot 完成时,我什么也没有得到。Bot …
xcode ×10
xcode-bots ×10
ios ×3
xcode-server ×3
git ×2
osx-server ×2
codesign ×1
email ×1
postfix-mta ×1
xcode7 ×1
xcodebuild ×1