与Xcode Bots持续集成 [英] Continuous integration with Xcode Bots

查看:99
本文介绍了与Xcode Bots持续集成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Xcode机器人进行持续集成。我安装了OSX Mavericks和Server(版本3)。我可以使用Xcode 5.0.1创建机器人。虽然集成它成功执行分析测试但总是最终的集成结果是失败。

I want to to do the continuous integration using Xcode bots. I have installed OSX Mavericks and Server(version 3). I am able to create bots using Xcode 5.0.1. While integrating it is successfully performing analyzing testing but always the final integration result is failure.


集成失败。意外的内部服务器错误。有关更多详细信息,请参阅集成日志。

Integration failed. Unexpected internal server error. See the integration's logs for more details.`

我从服务器错误日志中找不到任何内容。由于某些维基服务相关,它失败了错误。

I didnt understand anything from the server error logs.Its failing due to some wiki service related errors.

任何人都可以帮助我吗?

Can anyone help me?

Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:233 7e026310 +0ms] didReceiveData
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:246 7e026310 +2ms] connectionDidFinishLoading
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:172 7e026310 +0ms] Out of runloop; request completed
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceProxy.m:79 7e026310 +0ms] Received successful response.
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Info>: [CSConfig.m:55 7e026310 +0ms] Reading plist at /Library/Server/Wiki/Config/collabd.plist
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [XCSBuildHelper.m:97 7e026310 +0ms] Updating bot run with GUID fc16d3af-093e-44aa-8a40-ebfef45bbbd9
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [XCSBuildHelper.m:102 7e026310 +0ms] Updating bot run (fc16d3af-093e-44aa-8a40-ebfef45bbbd9): {
        guid = "fc16d3af-093e-44aa-8a40-ebfef45bbbd9";
        status = failed;
        subStatus = "internal-error";
    }
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Info>: [CSConfig.m:55 7e026310 +0ms] Reading plist at /Library/Server/Wiki/Config/collabd.plist
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Info>: [CSConfig.m:55 7e026310 +0ms] Reading plist at /Library/Server/Wiki/Config/collabd.plist
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Info>: [CSRemoteServiceClient.m:151 7e026310 +0ms] Connecting to https://localhost:4443/svc to execute [https]Request{XCBotService.updateBotRun:({
        guid = "fc16d3af-093e-44aa-8a40-ebfef45bbbd9";
        status = failed;
        subStatus = "internal-error";
    })}
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:159 7e026310 +0ms] Secure, async request
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:169 7e026310 +0ms] Before runloop; request pending
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:223 7e026310 +157ms] didReceiveResponse
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:225 7e026310 +0ms] response=<NSHTTPURLResponse: 0x7fd24a5a7980> { URL: https://localhost:4443/svc } { status code: 200, headers {
        "Accept-Ranges" = bytes;
        "Content-Length" = 3700;
        "Content-Type" = "x-apple/msgpack";
        Date = "Tue, 29 Oct 2013 04:48:41 GMT";
        Status = 200;
        "X-Apple-collabd" = yes;
    } }
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:233 7e026310 +0ms] didReceiveData
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:246 7e026310 +0ms] connectionDidFinishLoading
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:172 7e026310 +0ms] Out of runloop; request completed
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceProxy.m:79 7e026310 +0ms] Received successful response.
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [XCSBuildHelper.m:108 7e026310 +0ms] Updating bot with GUID 4e122aa2-56dd-4e3a-ad6e-25be1a65e657
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [XCSBuildHelper.m:117 7e026310 +0ms] Updating bot with latest bot run GUID key
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [XCSBuildHelper.m:124 7e026310 +0ms] Updating bot (4e122aa2-56dd-4e3a-ad6e-25be1a65e657): {
        guid = "4e122aa2-56dd-4e3a-ad6e-25be1a65e657";
        latestFailedBotRunGUID = "fc16d3af-093e-44aa-8a40-ebfef45bbbd9";
        latestRunStatus = failed;
        latestRunSubStatus = "internal-error";
    }
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Info>: [CSConfig.m:55 7e026310 +0ms] Reading plist at /Library/Server/Wiki/Config/collabd.plist
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Info>: [CSConfig.m:55 7e026310 +0ms] Reading plist at /Library/Server/Wiki/Config/collabd.plist
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Info>: [CSRemoteServiceClient.m:151 7e026310 +0ms] Connecting to https://localhost:4443/svc to execute [https]Request{XCBotService.updateBot:({
        guid = "4e122aa2-56dd-4e3a-ad6e-25be1a65e657";
        latestFailedBotRunGUID = "fc16d3af-093e-44aa-8a40-ebfef45bbbd9";
        latestRunStatus = failed;
        latestRunSubStatus = "internal-error";
    })}
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:159 7e026310 +0ms] Secure, async request
Oct 29 10:18:41 AnilV-InetliMac.local xcsbuildd[11285] <Debug>: [CSRemoteServiceClient.m:169 7e026310 +0ms] Before runloop; request pending


推荐答案

问题似乎是XCode5 Bots做的不知道如何使用纯svn。你必须使用svn + ssh。

The problem seems to be that XCode5 Bots do not know how to use pure svn. You have to use svn+ssh.

[更新] 你也可以使用git ...与你的SVN同步。工作流程略有不同,但效果很好。

[UPDATE] You could also use git ... synchronized with your SVN. The workflow ist slightly different, but it works great.

我今天发现了这一点: subgit

I found this today: subgit

它完美地集成到GIT和SVN中,您可以在Xcode Server中设置GIT存储库并使用subgit升级它们 - 它们都将保持同步。 (花了我大约半个小时来完全理解它是如何工作的)

It perfectly integrates into GIT and SVN, you can set up GIT repositories in Xcode Server and upgrade them with subgit - they will both stay in sync. (took me about half an hour to completely understand how it works)

最重要的是:10个座位的许可证(意思是10个合作者通过subgit)是完全免费的(而且相当足够我的用例)。

Best of all: a 10 seat license (meaning 10 collaborator via subgit) is totally free (and quite enough for my use case).

[以前的答案] 我做了一个简单的解决方案,涉及SVN Server机器上的SSH服务器。我认为哪一个并不重要,但我现在正在使用Cygwin。

[PREVIOUS ANSWER] I made a simple solution that involves an SSH Server on the SVN Server machine. I think it does not matter which one, but I'm currently using Cygwin.

在/ etc / sshd_config中你需要添加一个子系统

In the /etc/sshd_config you need to add a subsystem

子系统svnserve -t/ etc / svnserve-proxy

你需要创建文件 / etc / svnserve-proxy

cat > /etc/svnserve-proxy
#!/bin/bash
svnserve -t -r <repository>

你必须修改 svnserve 命令和分别为存储库
在本地计算机上,您必须修改文件〜/ .subversion / config 并添加 [tunnels] line:

You have to modify the svnserve command and repository respectively. On your local computer you have to modify the file ~/.subversion/config and add a [tunnels] line:

[tunnels]
ssh = $SVN_SSH ssh -v -l <username> -s

username 是的名称要进行身份验证的用户。
此解决方案快速而且脏,不允许不同的用户进行身份验证。此外,Xcode需要在本地计算机和Bot-Server上使用相同的用户名。很可能你必须创建一个 _teamsuser 主目录并在其中放置一个subversion / config。

username is the name of the user you want to authenticate with. This solution is quick and dirty and does not allow for different users to authenticate. In addition, Xcode needs to use the same username on your local machine and the Bot-Server. It is quite possible that you have to create a _teamsuser home directory and put an subversion/config in there as well.

另一种方法是使用公钥(如机器人服务器已经创建的那样)然后您可以将它们放入 authorized_keys 并将命令放在前面:

An alternative would be to use public-keys (As the bot server already creates) You can then put these into authorized_keys and put a command in front:

command="svnserve -t -r <repository> --tunnel-user=<user>" rsa-ssh AAA

这篇关于与Xcode Bots持续集成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆