使用Cruise几日发现的问题#768
|
|
用Cruise有几日了,经过一段时间的研究发现如下几个问题: 2、系统网络连接断开的时候会触发一个Cruise的动作,这个时候我会收到以下错误: 我的Server和Agent安装在同一个机器上 3、Cruise run的速度有待改善,以前用CC构建2分钟的项目,移植到Cruise下之后达到了10分钟(每个job) |
|
|
zhmocean, 你好: 多谢您的反馈! 1. cruise在run的时候,第一次会在agent端checkout代码,以后如果material的url没有变化,只会svn update,不会删掉重新checkout. 另外,关于svn “Failed to add directory ‘Sln’”的错误,我们以前遇到过类似的问题,是由不正确的checkin操作导致的。如果还有问题,请详细描述,以便于我们帮助解决。 Thanks, |
|
|
感谢耐心解答。 2、- 3、我仔细观察了下,两者差的时间都浪费在了prepare上,应该是合理的。 另外,我想问一下,如果一个pipeline有2个stage,那么在第二个run的时候,是不是会删除第一个的repository,如果是,第二个stage怎么继承第一个生成的文件呢?是不是只能通过ANT脚本来控制?比如,我有dev和test两个stage,test需要使用dev编译产生的库文件,那如果每个stage都会先清理repository,我是不是还要在第二个stage中再次运行一次dev的过程。 谢谢 |
|
|
Hi zhmocean, 1. 对于属于同一个pipeline下stage下的job, 在第一次checkout之后如果pipeline material的配置不变,下次再在这个agent上build的时候是不会删除以前的checkout的,只会update以节省时间,这是cruise的预期。但是,您提到在您host的cruise环境里,同一pipeline下的job,每次build,agent都会删除以前的code重新checkout, 如果确实是cruise的行为,您能告诉我们您的pipeline material的配置以方便我们分析么? 对于您所要求的,每次编译时项目目录干净,建议配制成VS2003的job和VS2005的job用不同的agent去build。这样两个job可以同时build, 既能提高速度,又能减少干扰。配置方法也很简单,配置成job的resource和agent的resource匹配即可。 3. 一个pipeline的2个stage,第一个stage的第一个job运行时会checkout或者update代码,以后的job(只要是在这个pipeline下,不论哪个stage)再在这个agent上运行同一版本的build时,会继续用这个code来运行,不会重新checkout,这是cruise的行为。也就是说,dev stage运行完后,再运行同一版本的test stage时cruise不会删除以前的repository code. 对于每个job的artifacts, 在job运行完后,artifacts会从agent端publish到server端。这样artifacts就可以从job detail页面或者cruise server的文件系统上看到. Thanks, |
|
|
因为现阶段我们的服务器资源并不多,仅有一台机器在运行Agent,所以短时间内无法配置多个Agent,另外,住处的试验机也仅有一台,同样无法配置多个Agent,不知道这种情况下如何解决。 目前,我是使用ANT脚本来自己创建一个临时目录来保存build的生成文件,以备后续的stage使用。 |
|
|
在这台机器上装VM,把另一个Agent安装在VM上。当然可能会影响速度。 |
